我有一个英语词典Web应用程序,例如xyz.com,使用AngularJS开发(或任何其他UI)和REST API。由于Web应用程序对所有人开放且没有用户注册,因此没有身份验证。如何防止REST API被外部应用程序使用?换句话说,API应该只在通过xyz.com访问时才能工作。我不希望其他开发人员使用我的RESTapi来支持他的应用程序。
OAuth不是解决这个问题的方法,因为没有身份验证。这个问题类似于Protect Web API from unauthorized applications,但是没有任何具体的答案可以解决这个问题。
1条答案
按热度按时间xxls0lw81#
跨源资源共享机制https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS可以用来保护您的应用程序,但很容易被绕过。
同样,推荐策略https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy可以考虑在内,但与旧的浏览器不兼容。
由于Oauth2.0是不可能的,您最终可以使用JWT将它们与承载令牌HTTP身份验证结合起来,作为Oauth2.0的一个更简单的替代方案。