我mysqli_real_escape_string
用来解析PHP中的字符。当我进入数据库时,我看到:
हाँस्न सकिन
代替:
不能笑
我知道这些字符代表此字符的UNICODE。没有unicode码,有没有办法查看实际内容?
表排序规则为utf16_unicode_ci。
这些是HTML字符引用。mysqli_real_escape_string
不这样做,还有其他事情。
如果数据是通过未标记为的页面上的表单输入输入的,则可能是Web浏览器<meta charset="utf-8"/>
。在这种情况下,浏览器必须猜测页面是什么编码,并且可能错误地猜测页面是西欧语言(Windows代码页面1252)。在这种情况下,字符हाँस्न सकिन
不会以表单的编码形式出现,因此浏览器会感到恐慌,并对HTML编码进行最后的回退。这是无法可靠撤消的数据处理。您应该通过确保页面使用允许所有字符的UTF-8来避免这种情况。
您的Web应用程序在页面上显示此值是什么?您应该हा...
从字面上看到与号和所有内容。如果看到हाँस्न सकिन
,则表明您在输出数据库内容时未对HTML内容进行转义,这是个坏消息,因为这很可能意味着您具有HTML注入(XSS)漏洞。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句