保护一个应用程序使用的公共REST API

时间:2019-08-22 19:22:12

标签: rest api security

我需要构建一个REST API,供一个私有SPA Web应用程序使用。问题在于REST API必须与SPA位于不同的服务器上,因此它必须允许CORS。对于两层安全性,API可能需要通过SSL的基本身份验证以及检查正确的客户端IP地址。

由于API是SPA所使用的服务,因此无法进行API的用户登录过程。用户已经登录到托管SPA的客户端。除了用户ID,我将无权访问,REST API将无法验证该用户ID。

由于用户已登录到客户端的服务器,因此可以将API限制为来自SPA的IP地址的请求,但这仍然可能允许该服务器上的任何人使用SPA以外的API。

这是足够的保护吗?

我正在考虑以访问令牌的方式添加第三层保护,但这也很容易发现。如果您知道基本的身份验证信息(很容易获得)并且您的IP地址与预期的客户端IP相匹配,那么您就可以调用API以获得访问令牌。

此外,使用访问令牌会带来处理过期令牌的复杂性。

是否不可能完全保护需要基于Web的客户端的API?

多少个安全层足够?

0 个答案:

没有答案