+5

Prevenindo SQL Injection

criado por Péricles Luz em 07/01/2011 12:42pm
Pondo em prática e deixando de lado outras verificações, o código PHP do início do post http://dascoisasqueaprendi.com.br/tiseguranca/sql-injection-outro-foco/ ficaria algo como:
// validando a entrada
$usuario = $_POST['Usuario'];
if(!preg_match('/^[0-9]{1,6}$/', $usuario) die('Usuário inválido!');
$conexao = new mysqli('mysql.exemplo.com', 'root', 'password123', 'agenda', 3306);
// consultando via statement
$statemt = $conexao->prepare('SELECT CompromissoNome, CompromissoData,  CompromissoImportancia FROM Compromisso WHERE UsuarioID = ?');
$statemt->bind_param('i', $usuario);
$statemt->execute();
$statemt->bind_result($nome, $data, $importancia);
echo '<table><tr><td>Nome</td><td>Data</td><td>Importância</td></tr>';
while ($statemt->fetch())
{
echo "<tr><td>$nome</td><td>$data</td><td>$importancia</td></tr>";
}
echo '</table>';

...

Comentários:

Mostrando 1 - 10 de 13 comentários
Adam disse:
This is exactly what I was looking for. Thanks for sharing this great article! That is very interesting and informative about SQL Injection prevention.
http://garageflooringuk.co.uk/garage-flooring.html
28/11/2014 12:15am (~9 anos atrás)

Adam disse:
Fantastic article, this is so well explained that all my Collage friends could follow it, thanks and keep up the great work.
http://www.horserubbermats.co.uk/Rubber-Matting/Horse-Mats
28/11/2014 12:14am (~9 anos atrás)

Adam disse:
I wanted to thank you for this websites. I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. http://gymnasticmatsco.co.uk
28/11/2014 12:06am (~9 anos atrás)

Adam disse:
I am also facing this problem In my DB. I browsed you website and I found it best for new db developer. http://groundreinforcementmesh.co.uk
28/11/2014 12:03am (~9 anos atrás)

Olá, Meu site http://www.filmesonline4.com.br está passando por sql injection e criei um plugin que bloqueia todos os metodos de hackiar se quiserem entre no site e pedem.
01/08/2014 12:19pm (~9 anos atrás)

AndersonSilva disse:
Exitem Várias maneiras de previnirem sql injection por exemplo usar um function convertendo o hack, se quizem saber mais acesse o site http://www.baixafree.com.br Obrigado!!!
20/01/2013 4:45am (~11 anos atrás)

Jefferson disse:
Muito bom o artigo!

É importante lembrar sempre destas e de outras dicas sobre a proteção contra SQL injection. Ainda existem muitos sites que não se protegem dessa ameaça.
26/07/2012 3:54pm (~11 anos atrás)

Fernando disse:
Parabéns pelo artigo Péricles. Ele está sendo muito útil para mim, uma vez que estou engatinhando no php e fui uma vítima recente deste tipo de ataque. Mas estou com uma dúvida. Usando prepared Statements, como posso obter a sql já com os parametros definidos? Preciso dela para salvar em log a ação que foi executada. Alguém ai sabe me ajudar?
27/06/2012 11:15am (~12 anos atrás)

Pois é vale lembrar tambem que se o servidor de hospedagem tiver proteção o seu site nunca sera hackeado por sql injection.
27/06/2012 10:01am (~12 anos atrás)

Jefrey disse:
Bom lembrar que escapar aspas nem sempre funciona. É totalmente possível fazer uma injeção sem usar aspas, convertendo algumas strings para hexadecimal. Também não é bom, como muitos gostam, filtrar algumas palavras da string.
06/06/2012 9:53pm (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)