有没有办法在没有基于登录的身份验证的情况下保护API?

时间:2018-04-24 17:57:42

标签: api security authentication authorization api-design

我目前正在为网站开发API,但该网站并不需要登录才能使用,因此API必须在没有单独用户身份验证的情况下工作。目标是防止第三方使用API​​。

是否有办法保护API仅供我的网站使用,而不使用登录身份验证来阻止第三方调用后端服务。

我已经研究过CORS,但它似乎并不是一个强有力的保证。另一个想法是旋转API密钥。在这些情况下通常使用什么?

2 个答案:

答案 0 :(得分:0)

您可以在Apache Web服务器中设置ProxyPass配置,以将您在前端中执行的请求重定向到后端,这样后端端点将被隐藏。

我会告诉你一个例子......

ProxyPass "/foo" "http://yourbackend.com/bar"
ProxyPassReverse "/foo" "http://yourbackend.com/bar"

这样,对 yourfrontend.com/foo 的所有请求都将被重定向到 yourbackend.com/bar ,并且在您打开导航器的控制台时,您将看到请求yourfrontend.com/foo ....

当然,如果有人找到后端网址,则可以访问。

答案 1 :(得分:0)

加载网站后,请在客户端设置唯一标记。将所有请求中的此唯一令牌发送到您的服务器,这可以帮助您确定客户端是否正在访问API。

用户不必登录,但在这种情况下您设置了一个令牌,类似于API Key身份验证类型。