php sql注入

Ruk*_*tel 9 php sql

这些天我一直在冲浪,并了解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是如何完成的?(代码会更加明显)

Ali*_*aru 9

您可能启用了魔术引号.检查返回值get_magic_quotes_gpc.

"魔术引用"是PHP的一个古老尝试,可以自动神奇地阻止SQL注入,但在当前版本中,它已被弃用,并且鼓励您使用准备语句来避免SQL注入.

请参阅此处如何禁用它们,以便您可以尝试SQL注入.