将不可解析的cruft添加到ASP.NET MVC JsonResult

根据这些职位:

JSON不可解析的cruft:为什么这么认真?

为什么人们把代码放在“扔1; <不要邪恶>”和“for(;;);” 在json响应面前?

为什么Google会在(1); 到他们的JSON响应?

我想遵循以下答案中提出的建议:Web应用程序开发人员应该如何防御JSON劫持?

有没有简单的方法来添加一个不可解析的cruft到使用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,
    };
}
链接地址: http://www.djcxy.com/p/1313.html

上一篇: Add unparsable cruft to ASP.NET MVC JsonResult

下一篇: Standard JSON API response format?