Sun*_*eel 5 api rest web-services angularjs
我有一个英语词典 web 应用程序,比如 xyz.com,它是使用 AngularJS(或任何其他 UI)和 REST api 开发的。由于 webapp 对所有人开放并且没有用户注册,因此没有身份验证。如何防止 REST api 被外部应用程序使用?换句话说,REST api 应该只在通过 xyz.com 访问时工作。我不希望其他开发人员使用我的 REST api 来支持他的应用程序。
OAuth 不是解决方案,因为没有身份验证。这个问题类似于保护 Web API 不受未经授权的应用程序的影响,但没有任何具体的答案可以解决这个问题。
可以利用跨源资源共享机制https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS来保护您的应用程序,但很容易被绕过。
同样,Referrer-Policy https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy也可以考虑在内,但与旧版浏览器不兼容。
由于 Oauth2.0 是不可能的,您最终可以使用 JWT 将它们与不记名令牌 HTTP 身份验证结合起来,作为 Oauth2.0 的更轻量级替代方案。