我的几个控制器间歇性地返回以下错误:
”此请求已被阻止,因为可能会泄露敏感信息 在GET请求中使用时向第三方网站披露。 要允许GET请求,请将JsonRequestBehavior设置为AllowGet。”
但是在return语句中,我确实将JsonRequestBehavior设置为AllowGet
return Json(new {Success = true, Plan = populatedPlan}, JsonRequestBehavior.AllowGet);
我发现以下文章描述了带GET请求返回JSON时的漏洞。
https://haacked.com/archive/2009/06/25/json-hijacking.aspx/
我检查了我的代码,有些控制器只返回了一个JS数组,所以我修复了那些控制器,以返回一个对象,该数组具有分配给该对象的属性。但是,并非我的所有控制器都在执行此操作,就像我的代码段中的那样(返回一个JS对象),但是仍然偶尔会阻止响应。
如何阻止此错误的发生?
[编辑] 这种情况每200个请求中就有1个发生。当我已经在执行错误消息明确告诉我要执行的操作时,为什么会发生这种情况,我只是感到困惑。
答案 0 :(得分:-1)
在到达JsonRequestBehavior.AllowGet
之前,请确保没有return Json(new {Success = true, Plan = populatedPlan}, JsonRequestBehavior.AllowGet);
且没有其他JSON返回。