很好的说明了addslashes和MysqL_real_escape_string的区别,虽然国内很多PHP coder仍在依靠addslashes防止sql注入(包括我在内),我还是建议大家加强中文防止sql注入的检查。addslashes的问题在于黑客可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会被看作是单引号,所以addslashes无法成功拦截。
当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字符还是用MysqL_real_escape_string吧。
另外对于PHP手册中get_magic_quotes_gpc的举例:
<div class="codetitle"><a style="CURSOR: pointer" data="52183" class="copybut" id="copybut52183" onclick="doCopy('code52183')"> 代码如下: