我在2600阅读,但这篇文章也在这里https://viaforensics.com/mobile-security/static-code-analysis-watchtower.html无论如何,有一个代码块:
$result = mysql_query("SELECT * FROM users WHERE username = '{$_GET['username']}' AND `password` = SHA1('{$_GET['password']}')")
作者说:"2600的读者会发现明显的SQL注入,但似乎许多程序员 - 显着 - 不会." 有人可以解释并指出他的意思吗?
对我来说,我的意思是他的意思是,因为看起来没有清理因注入而臭名昭着的人物的数据,所以它很脆弱?
我是PHP5/MySQL的新手,并且一遍又一遍地查看这些代码,但是找不到任何其他结论.
如果username
是像'' OR ''=''#
和password
被'anything'
它会短路查询成为:
SELECT * FROM users WHERE username ='' OR ''=''#AND password ='anything'
您可以通过将SQL注入参数来使逻辑短路.