php
2015-08-13 29 views 0 likes 
0

我公司目前拥有的htmlentities功能显示所有的特殊字符<>"'和功能不将它们转换到类似的问题&#039;ヶ辆显示所有的字符,但不执行它们

但它不执行像<script>alert("test");</script>这样的东西,它只是显示它。

有什么问题吗?如果是,我该如何解决这个问题?

我的htmlentities背后的主要目的是对XSS攻击100%安全。

示例代码

$string = '<script>alert("test");</script>'; 
echo htmlentities($string, ENT_QUOTES, 'UTF-8'); 
+1

对于XSS htmlentities是错误的功能。通常你使用htmlspecialchars。这就够了!性能比你需要的要多。 –

+0

你在浏览器中查看这个吗?因为浏览器会解码这些特殊的序列并“显示”它们。检查源代码是否实际编码,或者使用error_log而不是echo进行测试。 – ahoffner

回答

2

你不会看到的字符代码,除非你查看页面源,因为您的浏览器会自动转换编码字符的可读性。

你可以看到它们的事实意味着它们被转义并正确渲染。

相关问题