扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
这里不讨论xss和其他安全漏洞,只考虑mysql注入一种情况。
光阴似箭催人老,日月如移越少年。
你好题主,我来回答一下这个问题。
首先,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,否则很可能因为网页和数据库编码格式不统一造成过滤逃逸问题。
谢谢。
绝对可以,没问题摸摸大
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
你好题主,我来回答一下这个问题。
首先,PHP语言,不做预处理查询来进行Mysql拼接的话,我们使用mysql_real_escape_string()、addslashes()等函数需要注意几个问题。
1、这些函数过滤哪些值?
mysql_real_escape_string():
\x00
\n
\r
\
'
"
\x1a addslashes():
单引号(')
双引号(")
反斜杠(\)
NULL
此时,我们注意到了有共同之处,都过滤了
'
"
\
于是,我们要注意以下几点:
PHP自拼接Mysql语句,使用上述函数对入库参数进行过滤时,一定要把入库的参数进行单撇号'""' 过滤,例如:
数据库格式一定要是utf8,否则很可能因为网页和数据库编码格式不统一造成过滤逃逸问题。
谢谢。
绝对可以,没问题摸摸大