Analise o código e verifique se as técnicas de programação s...
... $ id = $ _GET['id']; $ query = mysql query ('SELECT table.field FROM table WHERE id =' .$ GET ['id']); ...
Com base no código apresentado, analise as assertivas abaixo:
I. Vulnerabilidade e dependência de pacotes externos. II. Autenticação segura. III. Higienização das entradas de dados. IV. Princípio do menor privilégio.
Quais estão INCORRETAS?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a E, que afirma que todas as assertivas estão incorretas.
Justificativa:
A questão apresentada aborda o tema de programação segura, especificamente no contexto de segurança em consultas SQL e manipulação de dados provenientes de entradas do usuário. Vamos analisar cada assertiva:
I. Vulnerabilidade e dependência de pacotes externos.
O código mostrado utiliza a função mysql_query diretamente com dados provenientes de $_GET['id'] sem qualquer validação ou higienização. Isso resulta em uma vulnerabilidade conhecida como SQL Injection. Além disso, não há indicação de dependência de pacotes externos neste trecho de código específico. Portanto, esta assertiva está incorreta.
II. Autenticação segura.
O trecho de código fornecido não trata de autenticação de usuário de nenhuma forma. Ele apenas realiza uma consulta SQL. Portanto, esta assertiva está incorreta.
III. Higienização das entradas de dados.
O código falha ao não higienizar a entrada de dados proveniente de $_GET['id']. Para que o código fosse seguro, deveria ser utilizada uma técnica de higienização, como consultas preparadas (prepared statements) ou funções de escape de strings. A ausência dessa higienização torna o código vulnerável a SQL Injection. Portanto, esta assertiva está incorreta.
IV. Princípio do menor privilégio.
O princípio do menor privilégio não é abordado ou implementado explicitamente no trecho de código fornecido. Este princípio se refere a dar aos usuários e programas apenas as permissões necessárias para cumprir suas funções. Não há indicações de controle de permissões ou privilégios no código mostrado. Portanto, esta assertiva está incorreta.
Em resumo, todas as assertivas (I, II, III e IV) estão incorretas, justificando a escolha da alternativa E.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo