2
respostas

Tentativa de simular o SQL Injection

Olá Vinicius. Estou a tentar simular o ataque de SQL Injection no meu pc baseado nesta aula, mas sem sucesso. No código tenho: $title = filter_var($POST["title"], FILTERSANITIZE_STRING); $body = $POST["body"]; $author = $POST["author"]; $sql = "insert into posts(title, body, author) values('$title', '$body', '$author')"; $pdo->exec($sql);

E no meu form mando para o campo title insiro: andre', ''); drop table posts; --gp

O resultado final é que grava no banco como: andre', ''); drop table posts; --gp

Qual é a explicação para isso?

Obrigado

2 respostas

Já descobri. Tinha um Filter no title. Mas tentei para o author e tive um erro no browser: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeIsto tem a ver com proteções do proprio browser? Obrigado

Descobri que não estava a inserir direito: andre'); drop table posts; --gp Assim já dá, para simular e apaga a tabela.

Os prepare statements previnem o sql injection, mas não previnem ataques de js, correcto?

Para nos prevenirmos de ataques de js devemos usar os Filters nos dados vindos do form? Por exemplo o filter_var($POST["title"], FILTERSANITIZE_STRING);?

Obrigado