如何在网页上安全地写出一些用户生成的文本?
是否有一些需要转义的完整字符列表?
",+,: - 字符可能应该被转义,但可能有更全面的清单来说明需要做什么。
我正在考虑进行插入 javascript 或其他将重定向页面或将事情搞砸的东西的漏洞利用的可能性。年轻一代有太多的创造力。
此漏洞称为 XSS 攻击。不同的编程语言具有自动为您进行转义的功能,例如在 php 中,您可以使用调用的函数htmlspecialchars()
来转义将呈现为原始的用户文本。其他语言也有类似的功能。
如果您想允许用户仅使用 html 的一个子集(即,如果您有一个论坛允许用户在有限程度上格式化他们的帖子等),这会变得更加复杂,那么您实际上必须解析文本并决定什么是允许的,什么是不允许的。有多种引擎可以为您执行此操作(例如,SO 使用的降价)。
转义<
,>
和应该就足够&
了。'
根据您的服务器端语言,有一些特殊的方法。
(复制我自己对类似问题的回答——如果这被认为是不好的做法,请提醒我。)
您可能需要查阅OWASP 备忘单上的跨站点脚本预防。它归结为:
(不过,请阅读整个文档,而不是依赖此摘要......)