Sql注尝试PHP5.2.6
-
20-08-2019 - |
题
使用PHP5.2.6在XAMPP:
我读了关于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 code:
<?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';
?>
我发现了什么,美元的通过变量已经有所有的特殊字符逃脱。因此,没有必要使用mysql_
真的_
逃脱_
string PHP5.2.6然后呢?
解决方案
有可能你的PHP服务器配置为使用魔术引号。在PHP过时设置,自动转义在PHP脚本的所有输入数据。它的使用,将在PHP 6 这里是Zend的原因移除一>用于除去魔术引号。
这是更好地不依赖于“神奇”,使很多事情工作,但打破别人。明确逃逸你的输入更可靠,让你设计出更好的代码。例如,不是所有的输入需要以同样的方式进行转义。
其他提示
价值观可以逃脱,由于 魔术的报价 正在启用在你的服务器结构。魔术的报价被认为是非常坏,基本上为确切的理由。它是不安全的依赖功能,可以或不可以上来自动地逃避你进入的数据。它是 很多 更好地做到它自己在运行时间。
更多信息神奇的报价,并为什么他们不良,以及如何禁止他们,看看这些所以问题的答案:
没有,我不认为你就在这里。无论PHP的神奇逃脱在这个例子中的特殊字符,解释是不会执行的 MySQL的具体的转义您询问参数。
我认为这是极有可能有在此代码中的漏洞。
不隶属于 StackOverflow