在php中编写Web应用程序时,防止MySQL信息被其他人(第三方)披露或发现的最有效方法是什么?该信息将包括域名和登录以及connet功能中使用的密码。
例如,一个好的过程可能是将你的mysql连接函数保存在一个单独的php文件等中。
有什么想法吗?
答案 0 :(得分:4)
.php
文件外文档根目录中(因此无法通过网络直接访问).php
文件,而不是.inc
,这样即使它是通过网络意外访问的,也会执行而不会直接显示if (defined('DB_AUTH_LOADED')) return; define('DB_AUTH_LOADED', 1);
),以避免任何可能重新定义凭证变量这可以防止您直接访问您的凭据以及您自己的代码意外泄露凭据。如果攻击者可以将PHP文件上传到您的服务器并设法实际执行它们,那么这场斗争就会大打折扣,但上述措施应该让您相当安全,不会意外地泄露您的信誉。
答案 1 :(得分:2)
我不能说这是否是最好的,但我就是这样做的;
我有一个config.php文件,它保存我的数据库连接凭据,无法直接访问。我有一个DB类,需要config.php来建立连接,我有一个扩展DB类的站点类。
这是一种非常常见的做事方式,并且被普遍接受。
答案 2 :(得分:2)
您可以做的另一件事(如果您的凭据被泄露)是为了确保您为PHP将要使用的任务设置的mysql用户被禁止制作DROP语句,如果您可以构建数据,甚至可以使用DELETE语句如此。
为该用户提供对其他数据库的最低访问级别,可能只是拥有该用户数据的数据库。
答案 3 :(得分:1)
课程,包括?有很多方法可以做到,但最终如果有人可以访问未解析的PHP文件,他们将拥有您的MySQL登录详细信息。