作者:o.o | 来源:互联网 | 2022-12-28 19:53
我刚刚开始学习PHP,并结束了我的第一个PHP和MySQL for dummies book我担心我的PHP应用程序和MySQL数据库之间的安全连接.
根据我的了解,一种方法是使用数据库凭据创建.php文件,例如:
--- database.php ---
然后require_once('database.php')
在每个需要任何类型的数据库查询的PHP页面中放置一个.
我担心这种方法是否安全.一旦将文件放在网络服务器上,是不是每个人都可以访问文件database.php?
任何人都可能阅读数据库的凭据并乱搞它的方式吗?
有什么想法吗?
1> johannes..:
你必须要看的第一件事是不同的攻击向量.
一个向量是通过HTTP到达的远程用户,另一个主要向量是在机器上具有shell访问或类似的本地用户.
防止第一个相对容易:确保不通过HTTP共享内容.一种简单的方法是调用文件,.php
以便当用户猜出名称时执行PHP脚本并且不产生输出(这就是你已经做过的事情)稍微好一点是阻止从服务器配置访问文件.这两种方法仍然取决于您的操作,以确保您不会意外中断配置.更好的方法是将文件移出Web根目录,进入完全不同的目录.文档根目录外的文件无法通过服务器访问,因此永远不会泄漏.
为了防止本地攻击,保护是限制对Web服务器的访问权限(即使其由Web服务器拥有并仅向该用户帐户授予读取权限),但是这仍然为可以安装脚本的攻击者打开了一个向量服务器的不同vhost(如果它是分片服务器)缓解可能是PHP的"open_basedir"设置,其中PHP阻止访问不同目录中的文件.必须在服务器的配置中按vhost配置.