1

如何在网页上安全地写出一些用户生成的文本?

是否有一些需要转义的完整字符列表?

",+,: - 字符可能应该被转义,但可能有更全面的清单来说明需要做什么。

我正在考虑进行插入 javascript 或其他将重定向页面或将事情搞砸的东西的漏洞利用的可能性。年轻一代有太多的创造力。

4

4 回答 4

0

此漏洞称为 XSS 攻击。不同的编程语言具有自动为您进行转义的功能,例如在 php 中,您可以使用调用的函数htmlspecialchars()来转义将呈现为原始的用户文本。其他语言也有类似的功能。

如果您想允许用户仅使用 html 的一个子集(即,如果您有一个论坛允许用户在有限程度上格式化他们的帖子等),这会变得更加复杂,那么您实际上必须解析文本并决定什么是允许的,什么是不允许的。有多种引擎可以为您执行此操作(例如,SO 使用的降价)。

于 2011-02-26T16:19:59.807 回答
0

转义<,>和应该就足够&了。'

于 2011-02-26T16:21:09.110 回答
0

根据您的服务器端语言,有一些特殊的方法。

于 2011-02-26T16:24:35.633 回答
0

(复制我自己对类似问题的回答——如果这被认为是不好的做法,请提醒我。)

您可能需要查阅OWASP 备忘单上的跨站点脚本预防。它归结为:

  • 了解您根本不应该放置不受信任数据的位置
  • 了解在可以放置不受信任数据的不同位置中应以不同方式转义数据
  • 使用白名单(转义除指定安全字符之外的所有内容)而不是黑名单(仅转义指定的不安全字符)

(不过,请阅读整个文档,而不是依赖此摘要......)

于 2011-02-26T16:27:46.087 回答