环境变量是Cloud运行时与应用程序就其环境进行通信的方式。它所传达的最重要的信息之一是可用的服务以及如何与它们连接。
相同的页面给出了一个环境变量示例,其中包含连接参数,比如用于MySQL数据库的用户名密码。
VCAP_SERVICES: {
"mongodb-1.8":[{"name":"hello-mongo","label":"mongodb-1.8","plan":"free","credentials":{"hostname":"172.30.48.64","port":25003,"username":"e4f2c402-1153-4dfb-8d98-2f6efc65e441","password":"f17f81e4-9855-4b9c-a22b-e6a9e6f113c3","name":"mongodb-5751dac0-3b5e-405b-a1e1-2b384fe4026d","db":"db"}}],
"redis-2.2":[{"name":"hello-redis","label":"redis-2.2","plan":"free","credentials":{"node_id":"redis_node_4","hostname":"172.30.48.43","port":5002,"password":"e1d7acb0-2baf-42be-84bc-3365aa819586","name":"redis-96836b7c-0949-45fd-a741-c7be5951d52f"}}],
"mysql-5.1":[{"name":"hello-mysql","label":"mysql-5.1","plan":"free","credentials":{"node_id":"mysql_node_5","hostname":"172.30.48.24","port":3306,"password":"pw4EKJqL6na6f","name":"dd9b58515e3cb41958a30bf2af88126fc","user":"uLfJbOmxfSEUt"}}]}
该页还指出:
您可以使用Java的环境变量API和/或现有的Spring特性将这些信息读入应用程序中,但是使用新的云命名空间(在这里描述)更容易使用这些信息,该名称空间将其解析为一个方便的Properties对象。
读了这篇文章,我想知道这个设置对应用程序安全性有什么影响。具体来说,开发人员应该采取哪些措施来防止恶意攻击者直接控制mysql数据库这样的后端服务?
编辑:除了攻击者控制后端服务的风险外,我还可以想象攻击者导致应用程序连接到恶意后端的风险。
发布于 2011-11-21 22:21:25
如果要连接到后端(数据库)服务,则必须以某种方式向应用程序提供凭据。为了能够动态绑定到服务,环境变量是将应用程序私有信息传递给应用程序的一个很好的选择。
与任何应用程序妥协一样,当应用程序遭到黑客攻击时,后端也会暴露出来。
连接到恶意后端的唯一方法是攻击者能够在Cloud Foundry基础设施上设置恶意服务,并且能够危害云控制器以传递应用程序伪造的环境变量。
https://stackoverflow.com/questions/6576119
复制相似问题