MySQL-mysql_real_escape_string可以防mysql注入吗?

发布于 2016-12-28 06:22:43 字数 38 浏览 1295 评论 2

这里不讨论xss和其他安全漏洞,只考虑mysql注入一种情况。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泛泛之交 2017-08-11 12:06:59

绝对可以,没问题摸摸大

偏爱自由 2016-12-29 18:01:34

你好题主,我来回答一下这个问题。

首先,PHP语言,不做预处理查询来进行Mysql拼接的话,我们使用mysql_real_escape_string()、addslashes()等函数需要注意几个问题。
1、这些函数过滤哪些值?

mysql_real_escape_string():
x00
n
r

'
"
x1a

addslashes():
单引号(')
双引号(")
反斜杠()
NULL

此时,我们注意到了有共同之处,都过滤了

 '
"

于是,我们要注意以下几点:
PHP自拼接Mysql语句,使用上述函数对入库参数进行过滤时,一定要把入库的参数进行单撇号'""' 过滤,例如:

 $sql = "SELECT * FROM users WHERE user='" . $user . "' AND password='" . $pwd . "'";

数据库格式一定要是utf8,否则很可能因为网页和数据库编码格式不统一造成过滤逃逸问题。

谢谢。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文