O OWASP Top 10 aponta os principais riscos de segurança encontrados em aplicações Web durante um período específico. Na publicação OWASP – 2021, a categoria de risco de injeção aparece na terceira posição do ranking, depois de vários anos na primeira posição. Mesmo assim, por causa das suas consequências nocivas para o sistema de informação, ainda é considerado um risco bastante pertinente para os dias atuais. De acordo com OWASP – 2021, “94% dos aplicativos foram testados para alguma forma de injeção, e os 33 CWEs mapeados para esta categoria têm a segunda maior ocorrência em aplicativos”.
Para minimizar os riscos de segurança da categoria de injeção, é importante adotar boas práticas de desenvolvimento de software seguro. Dentre essas práticas, é importante usar ferramentas de análise de código-fonte que possam detectar falhas de segurança antes da implantação do sistema no ambiente de produção.
Durante uma bateria de testes realizada no código-fonte de um script escrito em linguagem Python, a função check_user_auth(conn, username, password) foi classificada como vulnerável ao ataque de injeção SQL. Essa função recebe como argumentos um handle de comunicação com o banco de dados (conn), um nome de usuário (username) e uma senha pessoal (password). Sabe-se que os argumentos são previamente sanitizados, o que assegura que conn sempre é válido e que username e password são strings formadas por letras maiúsculas e minúsculas, dígitos numéricos, espaço em branco e caracteres de símbolos presentes na tabela ASCII.
import mysql.connector
def check_user_auth(conn, username, password):
cursor = conn.cursor()
sql_query = “””SELECT * FROM users WHERE “””\
“””username = ‘%s’ AND password = ‘%s'”””%(username,password)
cursor.execute(sql_query)
user_reg = cursor.fetchall()
if not user_reg:
Auth_Boolean = False
else:
Auth_Boolean = True
return Auth_Boolean
Com relação ao risco de segurança detectado na função check_user_auth(conn, username, password),
a) explique por que um adversário consegue explorar a vulnerabilidade de injeção SQL nessa função quando fornece o valor ‘ OR ‘1’=’1 para ambos os argumentos username e password.
b) explique as alterações que devem ser realizadas na atribuição da string sql_query e na chamada do método cursor.execute() para mitigar o ataque de injeção SQL realizado com a manipulação maliciosa dos argumentos username e password dessa função.
CONTEÚDO EXCLUSIVO
Confira nossos planos especiais de assinatura e desbloqueie agora!
Ops! Esta questão ainda não tem resolução em texto.
Ops! Esta questão ainda não tem resolução em vídeo.
Questões Relacionadas
Normalização
A tabela Filmes armazenas os usuários de uma plataforma de streaming de filmes escolhendo seus filmes favoritos.
| UsrID | UsrNome | FilmeID | FilmeNome | GenID | GenNome | DTFavorito |
| 1 | Sander | 211 | 1917 | 4 | Guerra | 27/09/2023 |
| 2 | Pedro | 211 | 1917 | 4 | Guerra | 27/09/2023 |
| 1 | Sander | 325 | O Protetor | 6 | Policial | 28/09/2023 |
| 2 | Vithor | 457 | Mine | 8 | Drama | 27/09/2023 |
| 2 | Vithor | 658 | Lucy | 9 | Suspense | 30/09/2023 |
Sabe-se que:
- As colunas UsrID e FilmeID compõe a chave primária da tabela.
- Cada usuário possui um identificador único UsrID e um nome UsrNome.
- Cada filme possui um identificador único FilmeID e um nome FilmeNome.
- Cada gênero possui um identificador único GenID e um nome GenNome.
O dia em que o usuá…
Normalização
A tabela Filmes armazenas os usuários de uma plataforma de streaming de filmes escolhendo seus filmes favoritos.
| UsrID | UsrNome | FilmeID | FilmeNome | GenID | GenNome | DTFavorito |
| 1 | Sander | 211 | 1917 | 4 | Guerra | 27/09/2023 |
| 2 | Pedro | 211 | 1917 | 4 | Guerra | 27/09/2023 |
| 1 | Sander | 325 | O Protetor | 6 | Policial | 28/09/2024 |
| 2 | Vithor | 457 | Mine | 8 | Drama | 27/09/2024 |
| 2 | Vithor | 658 | Lucy | 9 | Suspense | 30/09/2023 |
Sabe-se que:
- As colunas UsrID e FilmeID compõe a chave primária da tabela.
- Cada usuário possui um identificador único UsrID e um nome UsrNome.
- Cada filme possui um identificador único FilmeID e um nome FilmeNome.
- Cada gênero possui um identificador único GenID e um nome GenNome.
O dia em que o us…
A publicação Censo Escolar da Educação Básica 2022: notas estatísticas é um levantamento estatístico anual coordenado pela Diretoria de Estatísticas Educacionais do Inep/Ministério da Educação, em parceria com o sistema educacional brasileiro, a partir de declarações obrigatórias para todos os estabelecimentos públicos e privados. É um documento essencial para a análise e planejamento das políticas educacionais no Brasil.
Nesse documento, encontra-se o seguinte gráfico, que permite analisar a evolução das matrículas na educação infantil, segundo a rede de ensino, entre os anos de 2018 e 2022.

BRASIL. Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira (Inep). Censo da Edu…



