允许用户输入HTML实体是危险的吗?

时间:2013-01-17 15:24:59

标签: html security xss

我正在试图找出保护网站免受XSS攻击的最小编码量。

我肯定知道我需要编码< (& lt;)和> (& gt;)标签内部,“(& quot;)”和“(&#39)内部属性。

我是否还需要编码& (&放大器;放大器;)?当用户保存数据时,我遇到了双重编码的问题(因为& amp; amp; amp; amp; amp; amp;)。如果我没有对&符号进行编码,是否存在任何安全漏洞或缺点?这意味着他们可以输入他们想要的任何HTML实体。

通过HTML实体,我特指的是与实体相对应的&符号前缀序列(如©™)。

这个问题与语言无关(当然,HTML部分除外)。

编辑:嘿,stack-overflow让我保留我的html编码实体:)这可能就是在说明。

1 个答案:

答案 0 :(得分:1)

如果要在页面上显示这些实体,则只需要对这些实体进行编码(并且&需要像>那样转义和<因为它是转义序列标识符)。

如果您在使用&编码的双重编码时遇到问题标志,听起来你在将数据插入存储机制(数据库?)之前就已经这样了。停止这一点。只有在页面上显示时,您才应该转义页面的数据。