我一直在查看有关 PHP 的 addlashes 函数如何/为什么容易受到 sql 注入攻击的文章。我读过的所有内容都说特定的mysql编码类型(默认字符集=GBK)存在问题,或者如果启用了magic_quotes,则会出现问题。但是,在这种情况下,我无法突破 addlashes() 函数并做一些恶意的事情——比如以管理员身份登录。
$user = addslashes($_POST['user']);
$pass = sha1($_POST['pass']);
$sql = "SELECT * FROM admins WHERE user = '".$user."' AND `pass` = '".$pass."'";
$nums = mysql_num_rows(mysql_query($sql));
if($nums==1){
$_SESSION['admin_user'] = $user;
$_SESSION['admin_pass'] = $pass;
这是针对客户的(次要)安全审计,我建议他们使用 PDO,但我需要显示他们当前的漏洞。
参考: