Sql注入尝试PHP5.2.6

Sql注入尝试PHP5.2.6,php,mysql-real-escape-string,Php,Mysql Real Escape String,在XAMPP中使用PHP5.2.6: 我阅读了有关sql注入的内容,并使用以下登录表单进行了尝试: <html><body> <form method='post' action='login.php'> <input type='text' name='user'/> <input type='text' name='pass'/> <inp

在XAMPP中使用PHP5.2.6:
我阅读了有关sql注入的内容,并使用以下登录表单进行了尝试:

<html><body>
        <form method='post' action='login.php'>
            <input type='text' name='user'/>
            <input type='text' name='pass'/>
            <input type='submit'/>
        </form>
</body></html>

和php代码:

<?php
$user = $_POST['user'];
$pass = $_POST['pass'];
$query = "Select * from users where user='$user' AND pass='$pass'";
echo $query;
mysql_connect('localhost','root','');
mysql_select_db('test');
$res = mysql_query($query);
if($res) $row = mysql_fetch_assoc($res);
if($row) echo 'yes';
?>

由于在服务器配置中启用,这些值可能会被转义。魔术语录被认为是非常糟糕的,基本上是因为你提到的确切原因。依靠一个可能启用或不启用的功能自动转义传入的数据是不安全的。最好在运行时自己做

有关魔法引号的更多信息,以及为什么它们不好,以及如何禁用它们,请查看以下几个问题/答案:


由于在服务器配置中启用,这些值可能会被转义。魔术语录被认为是非常糟糕的,基本上是因为你提到的确切原因。依靠一个可能启用或不启用的功能自动转义传入的数据是不安全的。最好在运行时自己做

有关魔法引号的更多信息,以及为什么它们不好,以及如何禁用它们,请查看以下几个问题/答案:


  • 不,我想你不在这儿。在本例中,无论php是否神奇地转义特殊字符,解释器都不会对查询参数执行特定于mysql的转义


    我认为这段代码中极有可能存在漏洞。

    不,我认为您不在这里。在本例中,无论php是否神奇地转义特殊字符,解释器都不会对查询参数执行特定于mysql的转义


    我认为这段代码中极有可能存在漏洞。

    很可能您的PHP服务器已配置为使用。PHP中已弃用的设置,它自动转义PHP脚本中的所有传入数据。它已弃用,将在PHP6中删除。用于删除魔法引号


    最好不要依赖“魔法”,它能让很多东西工作,但会破坏其他东西。显式转义输入更可靠,并使您能够设计更好的代码。例如,并非所有输入都需要以相同的方式转义

    您的PHP服务器可能已配置为使用。PHP中已弃用的设置,它自动转义PHP脚本中的所有传入数据。它已弃用,将在PHP6中删除。用于删除魔法引号

    最好不要依赖“魔法”,它能让很多东西工作,但会破坏其他东西。显式转义输入更可靠,并使您能够设计更好的代码。例如,并非所有输入都需要以相同的方式转义