0
我有一个博客系统,随机的人可以发表评论。如果淘气人尝试后的Javascript,会出现这种情况:PHP网站防止XSS有点太好
bla bla <script>alert("Hacked")</script>
假作
bla bla <script>alert("Hacked")</script>
我宁愿后保持代码不变,只是曾经有人需要发布HTML情况。我如何让第二条线看起来像第一条线,而没有它真的做任何事情?目前的办法,我将其过滤是:
$safeMessage = htmlspecialchars($reply['message'], ENT_QUOTES | ENT_HTML401, 'UTF-8');
echo "$safeMessage";
咦?你这样做的方式恰恰是正确的方法 - 当在浏览器中显示时,它应该显示''你能澄清哪里出了问题? –
你的意思是“保持代码完好?”根据定义,您不能同时过滤掉可能不安全的HTML字符并允许它们通过。如果你的意思是简单地显示它,所以它显示实际的HTML(不是呈现的HTML),那么你现在拥有什么错误? –
也许你曾经编码过它(到第二行),然后将元素的'.textContent'(jQ中的'.text')设置为它?无论如何,使用'.textContent'转义代码。 –