保护 AJAX 使用的 API

问题描述 投票:0回答:1

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

  1. SPA 网站(AJAX)
  2. 移动应用程序

一切(API、SPA 网站、移动应用程序)都在内部。

通常对于 API,我会使用基本身份验证,但显然一旦你向 AJAX 开放 API,安全性就会变得棘手。

关于“保护”API 的说明 - 我主要是想阻止爬虫攻击/攻击 API,并且数据并不完全是超私密的。

这是我想到的解决方案:

  1. 什么也不做。让它保持打开状态,但使用节流/速率限制来阻止我的 API 被抓取。
  2. 创建AJAX调用需要经过的中间人服务器。显然,这意味着存在额外的延迟、代码加倍等。
  3. 使用具有随机数和客户端/服务器之间商定的消息格式的 HMAC 身份验证,并且仅允许来自一组允许的域的 CORS。 (是的,我知道 Origin 标头可以被欺骗)。

我倾向于选项 3。由于我们通过 HTTPS,请求无法被嗅探,但显然我可以简单地转到 SPA 应用程序,弹出打开 Fiddler 并查看 HMAC 消息,但随机数将阻止重放攻击。显然,如果有人有这种倾向,他们可以下载 SPA 应用程序的 minified JS,找到 AJAX 调用发生的位置,并以某种方式找出 HMAC 格式。这是我能看到的唯一缺点。

我可以就此提供一些建议吗?

.net ajax rest security
1个回答
1
投票

我认为您有保护 Web API 安全的好主意。以下是一些额外的想法:

我认为,如果您使用/考虑/实现部分或全部机制,您的 Web API 将会获得相当好的身份验证和安全性;-)

希望对您有帮助, 蒂埃里

© www.soinside.com 2019 - 2024. All rights reserved.