我正在使用Jersey
开发一个带有Java的REST API,保护它的最佳方法是什么?我查看了基于密码的身份验证,Servlet Context
的各种事情,我听说过标记化等等。但是,保护它的行业标准方法是什么,并确保没有人可以通过在浏览器中输入网址从GET
请求获取数据,只需从POST
进行PostMan
调用即可上?有关实施这种最佳方式的任何学习材料吗?
简单的英文,我要问的是,如何通过确保API只能访问我们的应用程序来保护我的REST API?这样做的方法可以是从密码到令牌的任何方法。我正在学习它现在试图实现它,但在我需要知道要学习什么之前,因为我正在寻找最佳实践和行业标准的方法。
答案 0 :(得分:3)
这是开始保护API的好地方:
据说有一些担忧。你应该研究如何实现这些目标:
如果您的数据库遭到入侵,请以加密形式在您的数据库中存储凭据。
如果您将令牌存储在数据库中,验证需要进行数据库查找,这是一个问题,您是否期望负载过重?
如果您使用无状态身份验证,例如JWT,那么如果需要,如何撤消访问权限。 (提示:查看访问+刷新令牌方案+黑名单)
如何运输令牌,标题,Cookie?
保护您的API免受跨站点脚本(a.k.a.XSS)和跨站点请求伪造(a.k.a.CSRF或XSRF)。
注意:这些只是一些快速的想法,你可以在网上找到很多关于这些的信息。