没有处理用户输入
这或者可以这样说#1:永远不要相信用户的输入。用服务器端的PHP验证每个字符串,不要寄希望与JavaScript。最简单的SQL注入攻击会利用如下的代码:
1 | $username = $_POST[ "name" ]; |
2 | $password = $_POST[ "password" ]; |
3 | $sql = "SELECT userid FROM usertable WHERE username='$username' AND password='$password';" ; |
4 | // run query... |
只要在username字段输入“admin';--”,这样就会被黑到,相应的SQL语句如下:
1 | SELECT userid FROM usertable WHERE username= 'admin' ; |
狡猾的黑客可以以admin登录,他们不需要知道密码,因为密码段被注释掉了。
联系客服