SóProvas


ID
5266
Banca
CESGRANRIO
Órgão
REFAP SA
Ano
2007
Provas
Disciplina
Banco de Dados
Assuntos

Suponha que uma aplicação WEB, escrita em PHP, receba dados livres do usuário em um campo de formulário. Os dados recebidos são armazenados em uma variável "entrada", que é inserida diretamente, sem filtros, na consulta abaixo.

$consulta = "SELECT * FROM localidades WHERE nome='$entrada'";

Em seguida, a aplicação executa essa consulta no banco de dados. Desconsiderando mecanismos de defesa no banco de dados ou configurações especiais no servidor PHP, essa aplicação é vulnerável a ataques do tipo:

Alternativas
Comentários
  • existem varias maneiras de que um site me php ser atacado
    phpinjection
    sqlinjection
    etc...
  • A questão fala sobre uma injeção de dados que vai acontecer na aplicação, sendo que temos que desconsiderar qualquer tipo de mecanismo de defesa do mesmo.


    Existem dois principais tipos de ataques de injeção de banco de dados:

    1) SQL Injection que tem como alvo os sistemas de banco de dados tradicionais.

    2) NoSQL Injection que tem como alvo plataformas de Big Data.


    Ataques de SQL Injection geralmente envolvem a inserção (ou "injetar") de instruções SQL não autorizadas ou mal-intencionadas para os campos de entrada de aplicações web.


    Por outro lado, os ataques de NoSQL Injection envolvem a inserção de instruções maliciosas em componentes de grandes dados (por exemplo, Hive ou MapReduce).


    Em ambos os tipos, um ataque de injeção de entrada bem sucedida pode conceder a um attacker acessos sem restrições a um banco de dados inteiro. Um ponto crucial para perceber aqui, é que, embora seja tecnicamente verdade que as soluções de Big Data são impermeáveis aos ataques de SQL Injection - porque eles realmente não usam qualquer tecnologia baseada em SQL - são, na verdade, ainda suscetíveis à mesma classe fundamental de ataque (isto é, entrada de injeção).

  • "Um script PHP comumente depende de argumentos recebidos de outras páginas, através de links, de submissões de formulários(...), de requisições AJAX etc. Esses dados são enviados dentro de requisições HTTP, e são recebidas pelo PHP nos vetores superglobais $_GET e $_POST.

    Não é raro que scripts PHP trabalhem com esses vetores sem validá-los e formatá-los devidamente. Isso da Margem a ataques como SQL Injection, que na prática são muito mais simples do que possam parecer. (...) O Canal central para a realização de SQL Injection são os parâmetros recebidos pelo script, seja por linha de endereço (Get) ou por formulários (Get ou Post)."

    Fonte:

    CANTO, Fernando Henrique. Vulnerabilidades da Linguagem PHP. Trabalho de Graduação. UFRS. Porto Alegre, 2011. p.14-18. Disponível em: <https://www.lume.ufrgs.br/bitstream/handle/10183/31030/000782072.pdf> Acessado em: 12 Fev 2019.

    Alternativa Correta: SQL Injection