这些天我一直在冲浪,并了解SQL INJECTION ATTACK.我试图在我的本地机器上实现如何做到这一点,以便我可以在我的系统中防止它...
我写了这样的代码
PHP代码:
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>";
}
}
Run Code Online (Sandbox Code Playgroud)
HTML代码:
<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>
Run Code Online (Sandbox Code Playgroud)
通过这段代码如果我给输入," OR ""="那么sql注入应该完成.但它不能正常工作.在帖子数据中,如果我在密码字段中给出上面的输入,我有附加斜线.
任何人都可以告诉我实际上SQL INJECTION ATTACK是如何完成的?(代码会更加明显)
您可能启用了魔术引号.检查返回值get_magic_quotes_gpc.
"魔术引用"是PHP的一个古老尝试,可以自动神奇地阻止SQL注入,但在当前版本中,它已被弃用,并且鼓励您使用预准备语句来避免SQL注入.
请参阅此处如何禁用它们,以便您可以尝试SQL注入.
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |