Considerando o trecho de programa PHP apresentado acima, jul...
}
}
elseif ($react =="add_user") {
if (($user) and ($pass)) {
$query = “INSERT into login VALUES (“;
$query .= "0, SYSDATE( ),'$username','$password' )";
mysql_query($query, $mysql_link);
} else {
print(“<strong>either your user or password field
was left blank</strong><p>") ;
}
} else {
print("<center>Administration Area - Choose your
option</center>");
}
</script>
Não há crítica aos dados providos pelo usuário.
crítica para evitar um sql injection
ou seja
sanitizar as entradas
Alternativa correta: C - certo
O trecho de código PHP apresentado na questão envolve operações de manipulação de um banco de dados, mais especificamente a adição e remoção de usuários. O enunciado afirma que não há crítica aos dados providos pelo usuário, o que, ao analisar o código, constatamos ser verdadeiro.
No código, a variável $react é usada para decidir entre a remoção de um usuário (delete_user) ou a adição de um novo usuário (add_user). Nenhuma dessas operações inclui uma etapa de validação ou sanitização dos dados do usuário antes de serem usados nas consultas SQL. As variáveis $user e $pass são inseridas diretamente nas consultas, o que representa uma falha de segurança e pode levar a ataques de injeção de SQL.
No bloco de código referente à remoção de usuários, a instrução SQL é formada concatenando diretamente o conteúdo da variável $user na consulta. Além disso, após a execução da consulta, o código verifica se alguma linha foi afetada usando mysql_num_rows, o que é inadequado já que o comando DELETE não retorna um conjunto de resultados.
Para a adição de usuários, embora sejam feitas verificações para saber se as variáveis $user e $pass estão vazias, não é feita nenhuma validação do conteúdo dessas variáveis, o que também pode levar à injeção de SQL.
Por fim, é importante observar que o código utiliza funções mysql_*, que estão obsoletas e foram removidas nas versões mais recentes do PHP. Em contextos reais, a recomendação seria utilizar as extensões MySQLi ou PDO, que oferecem recursos de preparação de consultas que podem prevenir injeções de SQL.
Concluindo, a alternativa C está correta ao afirmar que o código não realiza crítica aos dados providos pelo usuário, representando uma vulnerabilidade no tratamento de informações sensíveis.