spring-boot - 如何正确设置敏感凭据的配置文件?
问题描述
我目前正在使用可以访问数据库的 spring-boot 开发后端应用程序。数据库的登录凭据存储在一个名为 application.properties 的文件中,这只是 spring-boot 的一个示例,但这必须与我认为的其他技术类似。
我想知道这是否是存储敏感凭据的最先进技术,或者是否有另一种(更好、更安全)的方式来存储此类信息?有哪些技术可以应对这些挑战?
当然,您不想将这些配置文件推送到任何版本控制存储库等,但是以这种方式存储它是否足够“安全”?有人可能会争辩说,如果有人可以访问您的后端应用程序的代码,那么您还有其他问题,但我仍然很好奇。
解决方案
您使用的论点是正确的。假设一种选择是加密。即使您加密了您的凭据,应用程序也会使用私钥来解密,对吗?如果服务器遭到入侵,攻击者可以读取源代码,找到私钥并解密凭据。
使其更安全的一种方法是使用请求来收集凭据。它可以通过 REST 请求(一种可以通过请求向您提供应用程序凭据的 API)来完成。
最安全的方法是使用密码保险箱。这篇文章有很好的内容。
推荐阅读
- r - is.null 在列表与其他对象上
- c# - 无法在 main 中访问扩展的方法
- java - 主题标签后 URL 被截断
- wpf - 如何在 WPF 工具包图表中的特定数据点添加垂直线
- fortran - 尝试使用 GFortran 编译和执行旧的 Fortran 77 代码
- excel - 使用用户表单对零件编号进行排序
- javascript - 为什么 JavaScript 的 string.split() 在某些情况下不能正常工作?
- sql - 获取存储过程、视图、函数中使用的表列列表
- python - 从列表中找到最接近的值?
- django - 为什么覆盖表单的init函数会使表单字段返回none