保护AJAX消耗的API

时间:2015-03-18 23:17:15

标签: .net ajax api security rest

我有一个REST JSON API(内置于.NET),需要由以下客户端使用(通过HTTPS):

  1. SPA网站(AJAX)
  2. 移动应用程序
  3. 一切(API,SPA网站,移动应用程序)都在内部。

    通常对于API,我会使用基本身份验证,但很明显,一旦将API打开到AJAX,安全性就会变得棘手。

    关于“保护”API的注意事项 - 我主要想停止使用黑客攻击/锤击API,而且数据并非完全超私有。

    以下是我想到的解决方案:

    1. 什么都不做。保持打开状态,但使用限制/速率限制来阻止我的API被删除。
    2. 创建一个AJAX调用需要经过的中间人服务器。显然这意味着有额外的延迟,加倍代码等。
    3. 在客户端/服务器之间使用带有nonce和商定的消息格式的HMAC身份验证,并且只允许来自一组允许域的CORS。 (是的,我知道Origin标头可以被欺骗)。
    4. 我倾向于选项3.由于我们通过HTTPS,请求无法被嗅探,但显然我可以简单地转到SPA应用程序,弹出Fiddler并查看HMAC消息,但是nonce将停止重播攻击。显然,如果有人倾向于这样,他们可以为SPA应用程序下载 minified JS,找到AJAX调用发生的位置,并以某种方式找出HMAC格式。这是我能看到的唯一缺点。

      我能就此提出一些建议吗?

      由于

1 个答案:

答案 0 :(得分:1)

我认为您有很好的想法来保护您的Web API。以下是一些额外的想法:

我认为如果你使用/考虑/实现部分或全部机制,你将对你的Web API有一个非常好的身份验证和安全性; - )

希望它可以帮到你, 亨利