我一直在冲浪,并了解sql INJECTION ATTACK.我已经尝试在我的本地机器上实现,以了解如何做到这一点,以便我可以防止在我的系统中…
我已经编写了这样的代码
if(count($_POST) > 0){ $con = MysqL_connect("localhost","root","") or die(MysqL_error()); MysqL_select_db('acelera',$con) or die(MysqL_error()); // echo $sql = 'SELECT * FROM acl_user WHERE user_email = "'.$_POST['email'].'" AND user_password = "'.$_POST['pass'].'"'; $res_src = MysqL_query($sql); while($row = MysqL_fetch_array($res_src)){ echo "<pre>";print_r($row);echo "</pre>"; } }
<html> <head></head> <body> EMAIL : <input type="text" name="email" id="email" /><br /> PASWD : <input type="text" name="pass" id="pass" /><br /> <input type="submit" name="btn_submit" value="submit email pass" /> </body> </html>
通过这个代码,如果我给输入为“OR”“=”,那么sql注入应该完成.
但它不能正常工作.在帖子数据中,如果我在密码字段中给出上面的输入,我将加上斜杠.
你可能启用了魔术报价.检查
原文链接:https://www.f2er.com/php/131193.htmlget_magic_quotes_gpc
的返回值.
“魔术报价”是一种古老的尝试,从PHP到自动魔法防止sql注入,但是在目前的版本中,它已被弃用,因此鼓励您使用prepared statements来避免sql注入.