【发布时间】:2017-07-30 10:15:44
【问题描述】:
我正在使用 Jersey 使用 Java 开发 REST API,保护它的最佳方法是什么?我从基于密码的身份验证中查看了各种内容,Servlet Context,我听说过令牌化等。但是什么是行业标准的方法来保护它并确保没有人可以通过在浏览器中键入 URL 来从 GET 请求中获取数据,只需从 PostMan 进行 POST 调用等等?任何有关实施这种最佳方式的学习材料?
用简单的英语,我要问的是,如何通过确保 API 仅对我们的应用程序可访问来保护我的 REST API?这样做的方法可以是从密码到令牌的任何东西。我现在正在学习它,试图实现它,但在我需要知道要学习什么之前,因为我正在寻找最佳实践和行业标准的方法。
【问题讨论】:
-
目前还不清楚您的问题是什么。使用哪种形式的令牌(JWT、UUID、...)?要使用哪种形式的传递令牌:标头、cookie 或参数?如何在泽西岛实现身份验证/授权?还是什么?
-
@user3707125:我在问如何通过确保 API 只能访问我们的应用程序来保护我的 REST API。这样做的方法可以是你提到的任何东西。我正在学习它,现在正在尝试实施它,但在我需要知道要学习什么之前。
-
“API 只能被我们的应用访问”——这是不可能的,因为客户端可以监控与服务器的通信,并模仿它。在 Web 中,您通常会在设计后端时理解前端是另一个应用程序,并且在考虑安全性时,请记住该应用程序不是您的。
-
我知道,我只是为了说明我在寻找什么而发表了这个声明。这并不意味着只有我们可以访问它,这意味着我们可以访问,因为我们有权这样做。您如何授权和保护您的 REST API?
-
认证客户端获取token后,可以确定角色。对于连续请求,用户将令牌作为标头传递。在泽西岛,我有一个过滤器(?)(不记得这个词),它将根据用户的角色和请求的路径拒绝/传递请求。
标签: java rest security servlets jersey