我已经阅读了各种建议Prepared statements
在 SQL 查询中使用的文章,但是mysql_ lib does not allow executing 2 queries in one statement
如果我需要在页面执行中只触发一次查询,那么是否值得使用它们,并且在某些情况下,mysql_query 似乎也忽略了无效的帖子数据(比如'ADMIN' OR 1--
)
$username = $_POST['username'];
$password = $_POST['password'];
mysql_query("SELECT * FROM users WHERE username=$username AND password=$password");
//processing
现在,如果有人将“用户名”传递为
'ADMIN' OR 1--
上面的查询会获取“Admin”行!这是 mysql_query 的一个功能,它忽略'1' / Special chars
. 在这种情况下,SQL 注入将如何发生,运行 MYSQL 5.5 和 PHP 5.3