加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用ONLY php防止SQL注入

发布时间:2020-12-13 17:51:13 所属栏目:PHP教程 来源:网络整理
导读:我认为我有一个完整的工作网站,有许多调用 MySQL服务器,并在这个网站上做了一些研究,我看到以这种形式制作我的查询: $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",mysql_real_escape_string($user),mysql_real_escape_string
我认为我有一个完整的工作网站,有许多调用 MySQL服务器,并在这个网站上做了一些研究,我看到以这种形式制作我的查询:
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",mysql_real_escape_string($user),mysql_real_escape_string($password));

我可以解决安全问题,但是,正如我所说的,我有很多调用MySQL服务器,并且解决问题的最好方法(在我的情况下)直接转到vars im传递给查询但是whitout使用a MySQL函数因为im出了查询.让我解释一下,我有这个:

mysql_query("SELECT * FROM `post` WHERE id=" . $_GET['edit']);

我不能对这个查询进行修改,因为我在我的所有代码中都有很多这样的东西,我想要检查var上的注入,$_GET [‘edit’].

如何使用纯PHP检查查询变量的SQL注入?喜欢:

$_GET['edit']=freehack($_GET['edit']);
不要这样做.通过使用“安全”版本替换$_GET参数的值,您将污染输入数据,这可能是其他地方所需要的.

只有在需要在数据库层上使用数据时才转义数据.它只需要您一点时间来修复您的查询,从长远来看将为您节省大量的麻烦.

无论如何,你在做什么仍然不安全!见:PHP: Is mysql_real_escape_string sufficient for cleaning user input?

你真的应该使用prepared queries with PDO.此外,在查询中使用它之前,你应该检查你的用户输入的有效性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读