PHP和mysql_real_escape_stringaddslashes
它解释了mysql_real_escape_string addslashes和很好的区别。虽然在中国很多PHP程序员仍然依赖addslashes防止SQL注入(包括我),我建议我们加强中国为了防止SQL注入检查,addslashes的问题是,黑客可以利用0xbf27代替单引号,而只在0xbf5c27 0xbf27 addslashes修改,成为一种有效的多字节字符。0xbf5c仍被视为一个单引号,所以addslashes无法拦截成功。当然,addslashes并非一无是处,它是一个单字节字符串处理多字节字符或mysql_real_escape_string酒吧。
另一个get_magic_quotes_gpc在PHP手册中的例子:
复制代码代码如下所示:
如果(!get_magic_quotes_gpc()){
$ lastName = addslashes(_post美元{ 'lastname});
{人}
美元美元'lastname_post lastName = { };
}
这是更好地检查$ _post { 'lastname} magic_quotes_gpc打开时。
和mysql_real_escape_string和mysql_escape_string 2函数之间的差异:
必须在mysql_real_escape_string(PHP 4 PHP 5 > =高)的情况下使用。否则,mysql_escape_string只能使用,两者之间的差异:
mysql_real_escape_string考虑设置连接的现状特征,并mysql_escape_string不考虑它。
总结:
Addslashes()是一个强制添加;
mysql_real_escape_string()将判断字符集,但它是PHP版本的要求。
mysql_escape_string不考虑设置连接当前字符。