【发布时间】:2020-09-13 22:03:20
【问题描述】:
我在Get 方法中返回json 时遇到了以下 ASP.NET MVC 错误:
此请求已被阻止,因为敏感信息可能会被 在 GET 请求中使用时向第三方网站披露。 要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。
显然这个漏洞被称为json Hijacking。 This article 解释说,当使用Get 返回json 时,网站可能会被利用。但是在 Post 方法中返回 json 是安全的。
为什么将Get 更改为Post 可以防止这种攻击?
【问题讨论】:
-
看完文章,我想知道我们是否正确设置了服务器中的CORS和cookie域是否仍然存在问题
-
从文章中可以看出,漏洞利用似乎使用了
<script src="">标签来欺骗浏览器从服务器请求 JSON。由于script src总是使用 GET,如果服务器没有响应 GET,则漏洞利用会失败。因此,POST 应该是安全的。 -
是的,您可以从脚本发出 POST 请求,但除非服务器响应 GET 请求,否则此特定漏洞将不起作用。
-
不,
<script src>标签欺骗浏览器从目标服务器下载 JSON 数组。
标签: javascript json ajax security csrf