我一直在评论关于PHP的addslashes函数如何/为什么容易受到sql注入攻击的文章.我读过的所有内容都说特定的mysql编码类型存在问题(default-character-set = GBK),或者如果启用magic_quotes则存在问题.但是,在这种情况下,我无法摆脱addslashes()函数并执行恶意操作 - 例如以管理员身份登录.
$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;
Run Code Online (Sandbox Code Playgroud)
这是对客户的(次要)安全审核,我会建议他们使用PDO,但我需要显示他们当前的漏洞.
参考文献: