【发布时间】:2016-12-01 19:01:56
【问题描述】:
我正在开发提供 REST API 的 Spring Boot Web 应用程序。我的大部分页面(thymeleaf 模板)都使用这个 API 与后端通信(使用 AJAX 请求)。我已经阅读了不同的方法,例如基本身份验证、OAuth2 等。这些方法描述了用户身份验证,之后用户可以访问 API。但我不希望用户使用浏览器或 REST 客户端直接与我的 API 通信(即 postman chrome 扩展,它可以访问浏览器的 cookie,访问令牌通常存储在其中)。
我有这样的事情:
(1) 用户 --> (2) MyOwnPages --> (3) RestAPI。
有没有办法防止直接沟通 1-3 ?
我能否以某种方式确定该请求是从我的页面发出的(即向每个请求添加某种访问令牌)?有什么最佳做法吗?
谢谢!
【问题讨论】:
-
这就是 DMZ 的用途 (en.wikipedia.org/wiki/DMZ_(computing))。在您的情况下,您需要两个中间有防火墙的应用程序:一个在 DMZ 中充当中介,一个在您的后端。
标签: api rest spring-security spring-boot rest-security