java - Spring Boot 属性在进程列表中可见(ps)
问题描述
我有一个通过 shell 运行的 Spring Boot 进程,即
my-shell# java -jar my-app.jar --secret.password=text2000
一切都很好并且可以正常工作,但是在发布之后
ps -ef | grep "my-app" | grep -v grep
我可以看到密码和所有其他不太好的属性。
我该怎么做才能不暴露这样的密码?如何保护我的密码,使其无法通过任何形式查看ps -ef
?
解决方案
您可以使用环境变量或部署环境提供的一些类似机制(如Kubernetes Secretsapplication.properties
)将它们放入(或)或将它们传递到您的应用程序进程中。application.yml
请注意,仅仅从进程列表中隐藏秘密(或其位置)不会提高您的应用程序的安全性。您应该使用加密来保护您的秘密。
推荐阅读
- spring-data-cassandra - spring-data-cassandra 性能下降
- docker - 无法将 docker 容器连接到互联网
- apache - 使用 ModSecurity 将多个 IP 地址列入白名单
- php - 如何找到异步位置标头响应PHP cURL
- ms-access - MS Access:如果至少出现一次条件,则删除所有记录
- java - 为什么删除一个元素后需要将 ArrayList 的元素向左移动?
- json - 在 Python 中将 POST 响应转换为 Dictionary 时出错
- r - 在 R 中使用区间对数据进行分组
- java - Spring 与 JMS 的集成无法正常工作
- jsf - 如何在命令按钮单击时调用 index.xhtml 的中心布局中的页面?