javascript - 向 ASP.NET MVC JsonResult 添加无法解析的内容

标签 javascript asp.net asp.net-mvc json security

鉴于这些帖子:

JSON unparseable cruft: Why so serious?

Why do people put code like "throw 1; <dont be evil>" and "for(;;);" in front of json responses?

Why does Google prepend while(1); to their JSON responses?

我想遵循以下答案中的建议:How should web app developers defend against JSON hijacking?

有没有一种简单的方法可以向使用 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,
    };
}

关于javascript - 向 ASP.NET MVC JsonResult 添加无法解析的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20000575/

相关文章:

c# - 如何在C#中获取用户的公共(public)IP地址

c# - 如何从 ASP.NET 读取条码?

c# - 访问整个项目中的模型变量 MVC5 Razor - 使用 Basecontroller 设置 BaseViewModel 并在 Layout 中使用它

asp.net - AjaxToolkit CalendarExtender 和 MaskedEditExtender - 无法导航月份

ASP.NET MVC - 在生产中更新预编译的 Razor View 文件

c# - 在 LINQ 的一列上使用 distinct 获取整行

javascript - 在 Tumblr 中使用 Tumblr API

javascript - Material Design 表组件不支持动态行选择

javascript - 将 javascript 数组转换为 Float32Array 到缓冲区并返回

javascript - Span DIV 网页宽度的100%