首页 > 解决方案 > 解析器如何处理 json 数据

问题描述

我正在阅读Cross_Site_Scripting_Prevention_Cheat_Sheet,它在规则 3.1 上说

确保返回的 Content-Type 标头是 application/json 而不是 text/html。这将指示浏览器不要误解上下文并执行注入的脚本

这是否意味着如果我想在 html 页面中嵌入 json 数据并且该数据包含标签,例如 < script >alert(/XSS/)</script > (没有空格),这应该不起作用,因为解析器不会读取标签,所以在这种情况下我们不需要编码,对吗?!,因为 owasp 说在那之后,我们也应该进行HTML ENTITY ENCODING,所以我想知道我们为什么要这样做?

我开始学习解析器所以忘记我缺乏知识

标签: jsonparsingsecurityhtml-parsing

解决方案


根据我对 xss 站点攻击的理解,不是解析器会导致问题。让我们举一个例子,你收到了来自受感染浏览器的请求。下面的示例

{ "Name": "<script>alert('test');</script>" }

以及您在响应客户端时使用的来自浏览器的相同输入请求参数,无需任何编码或检查。

当客户端浏览器尝试使用此字段来显示浏览器的名称时,例如 hello 、Name。用户将收到警报。这是不可取的。我们总是必须限制和拒绝接受任何标签的请求,这样才能消除任何脚本问题。

我不是安全问题专家。但在 json 中拒绝带有标签的请求总是更好。


推荐阅读