【发布时间】:2021-05-12 03:17:48
【问题描述】:
我正在阅读Cross_Site_Scripting_Prevention_Cheat_Sheet,它在规则 3.1 中有所说明
确保返回的 Content-Type 标头是 application/json 而不是 文本/html。这将指示浏览器不要误解 上下文并执行注入脚本
这是否意味着如果我想在 html 页面中嵌入 json 数据并且该数据包含标签,例如 alert(/XSS/)(没有空格),这应该不起作用,因为解析器赢了'不读取标签,所以在这种情况下,我们不需要编码,对吗?!,因为 owasp 说在那之后,我们也应该做 HTML ENTITY ENCODING,所以我想知道我们为什么要这样做?
我开始学习解析器,所以忘记我缺乏知识
【问题讨论】:
-
这些是替代品。一种替代方法是将数据作为 application/json 发送。我不知道为什么他们认为这并不总是实用(或“高性能”),但我想这取决于您的服务器的体系结构。因此,如果您选择发送嵌入在 HTML 中的数据,那么您应该确保对特殊字符进行实体编码。 (
application/json文档中的实体编码字符将不起作用。)
标签: json parsing security html-parsing