字符约束条件的SQL注入攻击
引言 目前值得高兴的是,开发者在建立网站时,已经开始关注安全问题了——几乎每个开发者都知道SQL注入漏洞了。在本文中,我将为读者介绍另一种与SQL数据库相关的漏洞,虽然它的危害性与SQL注入不相上下,但目前却很少为人所知。接下来,我将为读者详细展示这种攻击手法,以及相应的防御策略。 背景知识 最近,我遇到了一段有趣的代码,它尝试尽一切可能来保护数据库的访问安全,例如每当新用户进行注册时,将运行以下代码: <?php // Checking whether a user with the same username exists $username = mysql_real_escape_string($_GET[ 'username']); $ password = mysql_real_escape_string($_GET[ 'password']); $query = " SELECT * FROM users WHERE username= '$username'"; $res = mysql_query($query, $ database); if($res) { if(mysql_num_rows($res) > 0) { // User exists, exit gracefully . . } else { // If not, only then insert