在 WebApp 中存储用户名和密码
Storing UserName and Password in a WebApp
我有一个 SpringBoot 2.1.4.RELEASE RESTful Web 服务应用程序,使用 Spring 初始化程序,嵌入 Tomcat,Thymeleaf 模板引擎,并打包为可执行 JAR 文件,它使用由 JWT 保护的第三方 REST API,因此我需要在 WebApp 中存储普通用户名和密码以向 API 进行身份验证,我会想知道保留凭据的最佳做法是什么
1) 在 HttpSession 对象中 ?
2) 在数据库中作为计划文本?
最佳做法是不要存储在您的应用中。如果您在 AWS 上托管您的应用程序,这是一种有趣的方法。 https://medium.com/poka-techblog/the-best-way-to-store-secrets-in-your-app-is-not-to-store-secrets-in-your-app-308a6807d3ed
机密管理应该在应用程序外部完成,最好借助第三方产品/API,因为创建我们自己的强大机密可能很麻烦管理系统.
HashiCorp Vault 是一款如此流行且强大的秘密管理产品。
由于您已经在使用 Spring 请参阅 this excellent article 了解如何使用保险库进行机密管理。
正如其他人所说,最好不要在应用程序中存储秘密。
为了避免存储任何用户凭据,您可以使用类似于 OAuth2 的策略,其中客户端直接从 API 提供程序(通常是前端的 Javascript 逻辑)请求 JWT 令牌,然后将来客户端对您的应用程序的请求会传递 JWT 令牌,您可以使用该令牌对 API.
发出请求
通过这种方式,所有用户凭据仅存储在客户端,仅允许您的应用程序访问 JWT 令牌,该令牌可能会在一段时间后过期。
我有一个 SpringBoot 2.1.4.RELEASE RESTful Web 服务应用程序,使用 Spring 初始化程序,嵌入 Tomcat,Thymeleaf 模板引擎,并打包为可执行 JAR 文件,它使用由 JWT 保护的第三方 REST API,因此我需要在 WebApp 中存储普通用户名和密码以向 API 进行身份验证,我会想知道保留凭据的最佳做法是什么
1) 在 HttpSession 对象中 ?
2) 在数据库中作为计划文本?
最佳做法是不要存储在您的应用中。如果您在 AWS 上托管您的应用程序,这是一种有趣的方法。 https://medium.com/poka-techblog/the-best-way-to-store-secrets-in-your-app-is-not-to-store-secrets-in-your-app-308a6807d3ed
机密管理应该在应用程序外部完成,最好借助第三方产品/API,因为创建我们自己的强大机密可能很麻烦管理系统.
HashiCorp Vault 是一款如此流行且强大的秘密管理产品。
由于您已经在使用 Spring 请参阅 this excellent article 了解如何使用保险库进行机密管理。
正如其他人所说,最好不要在应用程序中存储秘密。
为了避免存储任何用户凭据,您可以使用类似于 OAuth2 的策略,其中客户端直接从 API 提供程序(通常是前端的 Javascript 逻辑)请求 JWT 令牌,然后将来客户端对您的应用程序的请求会传递 JWT 令牌,您可以使用该令牌对 API.
发出请求通过这种方式,所有用户凭据仅存储在客户端,仅允许您的应用程序访问 JWT 令牌,该令牌可能会在一段时间后过期。