请教高手什么叫“字符编码循环漏洞”今天无意间看到,不理解,有知道的给说一下呵呵

解决方案 »

  1.   

    【转】PHP字符编码绕过漏洞总结
    该漏洞最早2006年被国外用来讨论数据库字符集设为GBK时,0xbf27本身不是一个有效的GBK字符,但经过 addslashes() 转换后变为  0xbf5c27,前面的0xbf5c是个有效的GBK字符,所以0xbf5c27会被当作一个字符0xbf5c和一个单引号来处理,结果漏洞就触发了。mysql_real_escape_string() 也存在相同的问题,只不过相比 addslashes() 它考虑到了用什么字符集来处理,因此可以用相应的字符集来处理字符。在MySQL 中有两种改变默认字符集的方法。方法一:改变mysql配置文件my.cnfCODE:[client]
    default-character-set=GBK方法二:
    在建立连接时使用CODE:
    SET CHARACTER SET 'GBK'例:mysql_query("SET CHARACTER SET 'gbk'", $c);问题是方法二在改变字符集时mysql_real_escape_string() 并不知道而使用默认字符集处理从而造成和 addslashes() 一样的漏洞详细地址:
    http://www.sai52.com/archives/493/
      

  2.   

    addslashes是安全的,请放心使用。