保护 REST API 的最佳方法是什么?

Pea*_*Gen 5 java security rest servlets jersey

我正在使用 Java 开发 REST API Jersey,保护它的最佳方法是什么?我从基于密码的身份验证中查看了各种内容Servlet Context,并且听说了标记化等。但是,保护它并确保没有人GET只需在浏览器中输入 URL 就可以从请求中获取数据的行业标准方法是什么,只需POST 拨打 fromPostMan等等?任何关于实施这种最佳方式的学习材料?

用简单的英语,我要问的是,如何通过确保 API 仅对我们的应用程序可访问来保护我的 REST API?执行此操作的方法可以是从密码到令牌的任何内容。我正在学习它现在试图实施它,但在我需要知道要学习什么之前,因为我正在寻找这样做的最佳实践和行业标准方法。

Nor*_*csi 5

这里是开始保护 API 的好地方:

  1. 使用 HTTPS
  2. 使用用户名/密码进行身份验证
  3. 当用户成功登录时,您会为他们生成一个令牌
  4. 将令牌分配给该用户(简单的方法是将其保存在数据库中)
  5. 要求用户在每次请求时都发送该令牌
  6. 在响应任何请求之前验证令牌

话虽如此,但仍有一些担忧。您应该研究如何实现这些:

  • 以加密形式将凭据存储在您的数据库中,以防您的数据库遭到破坏。

  • 如果您将令牌存储在数据库中,则验证需要进行数据库查找,这会是一个问题吗,您是否期望负载过重?

  • 如果您使用无状态身份验证,例如 JWT,那么如果需要,您如何撤销访问权限。(提示:查看访问+刷新令牌方案+黑名单)

  • 您如何传输您的令牌、标题、cookie?

  • 保护您的 API 免受跨站脚本(又名 XSS)和跨站请求伪造(又名 CSRF 或 XSRF)的影响。

注意:这些只是我脑海中的一些快速想法,你可以在网上找到很多关于这些的信息。