我正在开发一个网站,并尝试保护连接部分安全。我对$login使用了addslashes函数来防止SQL注入,但是一些朋友告诉我这并不足够安全。然而,他们没有告诉我如何利用这个漏洞。您/你如何打破这段代码?我该如何保护它?
<?php
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) )
{
extract($_POST);
$sql = "SELECT pseudo, sex, city, pwd FROM auth WHERE pseudo = '".addslashes($login)."'";
$req = mysql_query($sql) or die('Erreur SQL');
if (mysql_num_rows($req) > 0)
{
$data = mysql_fetch_assoc($req);
if ($password == $data['pwd'])
{
$loginOK = true;
}
}
}
?>
addslashes()
作为SQL查询中转义内容的机制。如果你正在学习这些教程之一,我建议你尝试寻找更加更新和准确的资料。此外,extract($_POST)
是一个漏洞的好例子;不要这样做!顺便说一句,欢迎来到StackOverflow。 - Álvaro Gonzálezextract()
函数造成的。如果表单中有loginOk
字段会怎样呢?.. - Your Common Sense