【发布时间】:2011-07-28 02:54:53
【问题描述】:
据我所知,TinyMCE 会自行转义元字符,之后使用 htmlspecialchars() 只会使输出混乱并显示 标签等等,而不是在浏览器中呈现它们。关闭 Javascript 并输入恶意代码是一件容易的事,当另一个打开 Javascript 的用户访问内容时,恶意代码将被呈现。
所以我需要使用正确的服务器端验证,但究竟 -如何- 考虑到成千上万的 XSS 技术,我可以正确地做到这一点吗?是否有任何适用于 TinyMCE 的有效方法,例如“将 htmlspecialchars() 与 TinyMCE 一起使用?”
到目前为止,我已经为允许的 HTML 标签创建了一个白名单,替换了内容中的任何 javascript: 和类似的 :void,以尝试防止内联 Javascript,例如 onClick="javascript:void(alert("XSS"));",但我觉得这不是够了。
非常感谢任何关于该主题的建议,但请记住某些内容需要在输出中正确显示,这就是我首先使用 TinyMCE 的原因。我只需要防范 XSS。
另外,在这个主题上;如何保护自己免受 style="background-image: url(XSS here);" 等 CSS XSS 的攻击?
【问题讨论】: