Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, meu site tá vulnerável a ataques por SQL Injection, e gostaria de saber se tem uma maneira de bloquear essa brecha adicionando algo no codigo de conexão com o banco.
atualmente ele esta assim:
<?php
$conexao = mysql_connect ("localhost", "root", "");
$db = mysql_select_db("banco");
?>
Já pesquisei sobre isso, mas nao sei por onde começar a proteger o site.
Qualquer ajuda sera bem vinda!
Eu vi em um site essa função:
<?php
function anti_sql_injection($str) {
if (!is_numeric($str)) {
$str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
$str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str);
}
return $str;
}
?>
Ela funciona perfeitamente comigo, quando você for inserir algum valor de fora na sua data base, use assim: anti_sql_injection($variavel);
estou colocando o seguinte codigo em todas as variaveis que recebem dados de fora:
$var = mysql_escape_string(strip_tags(trim($_GET["nome"])));
Isso resolveria alguma coisa ou nao ajudaria em nada?
>
Eu vi em um site essa função:
<?php
function anti_sql_injection($str) {
if (!is_numeric($str)) {
$str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
$str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str);
}
return $str;
}
?>
Ela funciona perfeitamente comigo, quando você for inserir algum valor de fora na sua data base, use assim: anti_sql_injection($variavel);
Mas eu preciso colocar anti_sql_injection($variavel); em todas as variaveis do site , ou so nas que recebem dados de fora?
Fazendo isso eu bloqueio o acesso de programas com Havij e outros do tipo?
Coloca só nas que recebem dados de fora, como formulários de login, registro e etc. Esse código te protege contra SQL Injection, que é um método que faz com que o invasor possa controlar sua Data Base e até apagá-la.
Valeu, pessoal, fiz o que o Fogomax disse, depois testei no Havij e nao conseguiu invadir, pelo menos aqui..
a pagina que tava com vulnerabilidade é essa:
http://www.poligamer.com.br/produto.php?ID=271097
Se quiserem testar tambem..
Obrigado , pessoal!
começe usando o pdo no lugar das funções do mysql_*