Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal... estou meio (super) inseguro em relação ao sql injection. No código abaixo eu adaptei a função anti_sql_injection($string) ao meu script (ta redundante eu sei, pois agora ele confere duas vezes o usuário e senha). Ele não dá erro, mas também não sei se está cumprindo sua função de proteção.
Perguntas:
1) Este código, do jeito que está, protege contra sql injection?
2) Onde é necessário colocar essa função? Somente quando faço login ou em outras consultas, inclusões, alterações, etc?
Alguém poderia me dar uma forcinha e falar um pouco mais sobre esse assunto?
<?php
function anti_sql_injection($string)
{
$string = get_magic_quotes_gpc() ? stripslashes($string) : $string;
$string = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($string) : mysql_escape_string($string);
return $string;
}
if (!empty ($_POST['usuario'])) {
session_start();
session_register("logar");
$_SESSION["logusuario"] = $_POST['usuario'];
$_SESSION["logsenha"] = $_POST['senha'];
$_SESSION["logsenha"] = md5($_SESSION["logsenha"]);
mysql_connect ('localhost', 'root', '') or die (mysql_error());
mysql_select_db ('classificados') or die (mysql_error());
$sql = "SELECT * FROM cadastro WHERE usuario = '" . anti_sql_injection($_SESSION["logusuario"]) . "' AND senha = '" . anti_sql_injection($_SESSION["logsenha"]) . "'";
$result = mysql_query ($sql);
while ($reg = mysql_fetch_array ($result)){
if ( $_SESSION["logusuario"] == $reg['usuario'] and $_SESSION["logsenha"] == $reg['senha']) {
header("Location: login.php");
break;
}
}
?>Carregando comentários...