【发布时间】:2018-02-21 22:26:58
【问题描述】:
通常,应用程序及其配置位于同一台机器内,当有人入侵该机器时,可以访问配置文件并访问数据库(通过位于该配置文件上的数据库用户名和密码)。如果我们散列配置文件信息然后使用该文件而不是纯文本文件会怎样?有没有更好的主意?假设我不想使用任何云基础设施,只有一台机器。
【问题讨论】:
标签: database security hash web-applications server
通常,应用程序及其配置位于同一台机器内,当有人入侵该机器时,可以访问配置文件并访问数据库(通过位于该配置文件上的数据库用户名和密码)。如果我们散列配置文件信息然后使用该文件而不是纯文本文件会怎样?有没有更好的主意?假设我不想使用任何云基础设施,只有一台机器。
【问题讨论】:
标签: database security hash web-applications server
哈希是one-way process - 最常用于验证信息是否被篡改。所以散列你的配置文件会给你一个本质上毫无意义的字符串,你不能用它来建立数据库连接。
当然,你可以加密配置文件,但是你有同样的问题 - 理论上可以访问 Web 应用程序的攻击者可以检索解密密钥,并计算出如何解密配置;他们甚至可以通过检查服务器进程的内存在运行时找出答案。
主要的一点是,可以访问您的网络服务器的攻击者几乎不可能被阻止 - 他们可能可以访问进出您服务器的所有流量,他们可以读取服务器上的所有文件(或在至少是 Web 应用程序用户可以阅读的),他们可能能够在服务器上执行任意代码。防范这种可能性并不是你时间的最佳利用——这就像投资卧室的锁以防前门不安全。修理前门要好得多。
此问题的最佳解决方案是让构建您使用的任何网络语言/框架的人来解决它。您无需指定语言/框架,而是阅读工具集的安全指南,并实施建议。另请查看OWASP 指南。
【讨论】:
散列函数是单向函数。一旦你散列了一个配置文件,你将无法“取消散列”它以供应用程序处理它。加密可能是大多数人使用的方法,但即便如此,仍然容易受到逆向工程的影响。
【讨论】: