【发布时间】:2019-05-07 09:39:36
【问题描述】:
我的几个控制器间歇性地返回以下错误:
“此请求已被阻止,因为敏感信息可能会被 在 GET 请求中使用时向第三方网站披露。 要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。”
但在返回语句中,我确实将 JsonRequestBehavior 设置为 AllowGet
return Json(new {Success = true, Plan = populatedPlan}, JsonRequestBehavior.AllowGet);
我发现以下文章描述了使用 GET 请求返回 JSON 时的漏洞。
https://haacked.com/archive/2009/06/25/json-hijacking.aspx/
我检查了我的代码,发现一些控制器只返回一个 JS 数组,所以我修复了它们以返回一个对象,该数组分配给该对象的属性。然而,并不是我所有的控制器都这样做,就像我的代码 sn-p 中的那个——它返回一个 JS 对象——但响应仍然偶尔被阻止。
如何阻止此错误的发生?
[编辑]大约每 200 个请求中就有 1 个发生这种情况。当我已经在做错误消息明确告诉我要做的事情时,我只是对为什么会发生这种情况感到困惑。
【问题讨论】:
-
您是否尝试重建您的项目?
-
@HienNguyen 项目编译正常。
-
你可以发布你的控制器和脚本来调用问题
-
@Lennart - 问题是一样的,是的,但是错误消息特别告诉我指定我已经完成的 AllowGet,它仍然间歇性地抛出错误。如果它每次都阻止它,那问题就不大了,但它只是偶尔发生。
标签: c# .net asp.net-mvc asp.net-web-api