1.addslashes(): 函数返回在预定义字符之前添加反斜杠的字符串。
预定义的字符有:
单引号(')
双引号(")
反斜杠(\)
NULL
eg:
if(!get_magic_quotes_gpc()){
addslashes($str);
}
2.mysql_real_escape_string(): 函数转义 SQL 语句中使用的字符串中的特殊字符。
下列字符受影响:
\x00
\n
\r
\
'
"
\x1a
注:mysql_escape_string 与mysql_real_escape_string() 完全一样,除了 mysql_real_escape_string() 接受的是一个连接句柄并根据当前字符集转移字符串之外。mysql_escape_string() 并不接受连接参数,也不管当前字符集设定。
mysql_escape_string在PHP5.3中已经弃用这种方法,mysql_real_escape_string()也即将被移除
eg:
con=mysqlconnect(“localhost”,“hello”,“321”);mysqlrealescapestring(str);
以上是以往常用方法,(注:mysql_query自 PHP 5.5.0 起已废弃,并在将来会被移除):
完美解决方案就是使用拥有Prepared Statement机制的PDO和MYSQLi来代替
本文深入探讨了PHP中的预处理字符串与SQL注入防御策略,包括使用addslashes与mysql_real_escape_string函数的原理与应用,强调了在数据库操作中正确转义字符串的重要性,以确保数据安全。
2016

被折叠的 条评论
为什么被折叠?



