鉴于这些帖子:
为什么人们在JSON响应前面加入像“throw 1; <dont be evil>”和“for(;;);”这样的代码?
为什么Google在他们的JSON响应前加上while(1);?
我想遵循以下答案中提出的建议:Web应用程序开发人员应如何防御JSON劫持?
有没有一种简单的方法可以在使用System.Web.Mvc.JsonResult
构建的JSON响应中添加不可解析的垃圾数据?security.se
帖子建议我在响应开头使用</*
。
鉴于这些帖子:
为什么人们在JSON响应前面加入像“throw 1; <dont be evil>”和“for(;;);”这样的代码?
为什么Google在他们的JSON响应前加上while(1);?
我想遵循以下答案中提出的建议:Web应用程序开发人员应如何防御JSON劫持?
有没有一种简单的方法可以在使用System.Web.Mvc.JsonResult
构建的JSON响应中添加不可解析的垃圾数据?security.se
帖子建议我在响应开头使用</*
。
public class SafeJsonResult: JsonResult
{
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.Write("</*");
base.ExecuteResult(context);
}
}
然后使用它替代默认的选项:
public ActionResult Index()
{
return new SafeJsonResult
{
Data = new { Foo = "bar" },
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
};
}