因为提供了样板代码并且它可以正常工作。正如以下来自旅游网站的示例所示您不应该信任任何人其中包括样板代码:复制 在这种情况下需要验证输入数据是否可以在 JavaScript 上下文中使用因为这是数据回显的地方。在这种情况下您会扫描哪些元字符?你会引用它们还是 购买电话号码列表 剥离它们?答案取决于上下文只有您(页面的开发人员或所有者)知道正确的上下文是什么。 不同的上下文 现在就像我们之前提到的输入可能会在不同的上下文中使用并且需要根据其使用的上下文进行不同的处理。有时数据会在多个上下文中使用并且可能需要针对每种情况进行不同的处理。我们来看几个案例。 HTML 上下文 在 HTML 上下文中数据作为内容的一部分写入 HTML 页面例如标记内<p>。示例包括搜索结果页面、博客评论系统、。
dictionary.com 的每日单词等。在此上下文中所有 HTML 元字符都需要进行编码或剥离。这主要是<和>但使用 可能更安全而且可能是最安全的。在尝试对数据进行编码之前请确保您知道数据采用的字符集。 在某些情况下您可能希望允许某些 HTML 标签例如在CMS工具或评论系统中。这通常是一个坏主意因为出错的方法比正确的方法多。例如假设您的博客系统允许评论者使用一些简单的标签(如<q>和 )来标记他们的评论<em>。现在一位快乐的评论者出现了并将以下代码添加到他的评论中: <q>...</q> 复制 你刚刚被 XSS 攻击了。如果您要允许标签的子集请从这些标签中删除所有属性。更好的想法是使用 CMS 特定语法例如BBCode您的后端可以将其转换为安全标签。 在 Smashing 杂志上。