我有一个 REST JSON API(内置于 .NET),需要由以下客户端使用(通过 HTTPS):
一切(API、SPA 网站、移动应用程序)都在内部。
通常对于 API,我会使用基本身份验证,但显然一旦你向 AJAX 开放 API,安全性就会变得棘手。
关于“保护”API 的说明 - 我主要是想阻止爬虫攻击/攻击 API,并且数据并不完全是超私密的。
这是我想到的解决方案:
我倾向于选项 3。由于我们通过 HTTPS,请求无法被嗅探,但显然我可以简单地转到 SPA 应用程序,弹出打开 Fiddler 并查看 HMAC 消息,但随机数将阻止重放攻击。显然,如果有人有这种倾向,他们可以下载 SPA 应用程序的 minified JS,找到 AJAX 调用发生的位置,并以某种方式找出 HMAC 格式。这是我能看到的唯一缺点。
我可以就此提供一些建议吗?
我认为您有保护 Web API 安全的好主意。以下是一些额外的想法:
我认为,如果您使用/考虑/实现部分或全部机制,您的 Web API 将会获得相当好的身份验证和安全性;-)
希望对您有帮助, 蒂埃里