代码之家  ›  专栏  ›  技术社区  ›  Felipe Oriani

ASP.NET MVC中JSON结果的安全请求

  •  0
  • Felipe Oriani  · 技术社区  · 14 年前

    我在ASP.NET MVC中开发了一个应用程序。这个应用程序有一个返回jsonresult的操作,我在客户端使用jquery得到它。一切都很好,但我想知道,如果有任何方法可以使这个行动的安全只返回来自我的网站的请求。

    是否有任何方法可以避免其他网站请求此操作?还是避免在地址栏中使用javascript(脚本注入)?

    谢谢

    4 回复  |  直到 14 年前
        1
  •  1
  •   Onkelborg    14 年前

    简短回答:否

    长话短说:了解请求合法性的唯一方法是解释请求随附的内容。HTTP协议没有魔力。也许,最可靠的方法是检查推荐人并确保它是你的网站。但这张支票不难骗。

        2
  •  0
  •   abarr    14 年前

    我还没有尝试过这个,但是我一直在思考如何才能实现这个目标。我目前的想法是向操作添加一个自定义属性,该属性检查请求应用程序附加到CAL的令牌。

    令牌将由调用应用程序根据应用程序使用API时提供给请求者的种子密钥生成。自定义属性将在运行允许或拒绝调用的操作之前对密钥进行身份验证。

    正如我所说,还没有完全形成,但正在沿着这些思路思考……祝你好运,如果你有什么发现的话,一定要发回。

        3
  •  0
  •   epascarello    14 年前

    对于其他站点:

    • 你可以查一下推荐人,但那是伪造的。
    • 您可以检查是否与用户进行了活动会话。

    对于地址栏:

    • 你真的无能为力。
        4
  •  0
  •   David Martinez    14 年前

    其他网站不能使用Ajax对您的操作发出请求,因为HTTP不允许这样做,但它仍然可以从地址栏、其他程序或任何东西中被调用。

    如果不允许仅从网站的特定部分调用操作,则可以使用HTML帮助器AntiforgeryToken和属性[validateNatiforgeryToken],您可以在此处查看有关此操作的教程: http://haacked.com/archive/2009/04/02/anatomy-of-csrf-attack.aspx . 这几乎是阿巴尔发布的想法。