gpt4 book ai didi

php sql 注入(inject)

转载 作者:可可西里 更新时间:2023-10-31 23:08:19 26 4
gpt4 key购买 nike

这几天一直在网上冲浪,对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>";
}
}

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>

通过此代码,如果我将输入作为 "OR ""=",则应该完成 sql 注入(inject)。但它不能正常工作。如果我在密码字段中输入以上内容,则在发布数据中我会添加斜线。

谁能告诉我 SQL INJECTION ATTACK 实际上是如何完成的?(代码会更有值(value))

最佳答案

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

“魔术引号”是 PHP 的一种古老尝试,自动神奇地防止 SQL 注入(inject),但在当前版本中它已被弃用,我们鼓励您使用 prepared statements以避免 SQL 注入(inject)。

参见 here如何禁用它们以便您可以试验 SQL 注入(inject)。

关于php sql 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6678245/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com