3

是否有必要为我的 MySQL 数据库取消设置密码变量。

目前,我的“dbpwd.php”代码是这样的:

# database setup
$dbserver = "localhost";
$db_usrname = "blah";
$db_pwd = "blahblahblah";
$dbname = "blah";

但我在想..这是一个安全问题..因为任何人都可以这样做:

 <?php
 include 'http://www.mywebsite.com/dbpwd.php';
 echo $db_usrname;
 echo $db_pwd;
 ?>

那不会让他们完全访问我的东西......那么在你的 php 代码末尾取消设置敏感的变量是一种好习惯吗?还是有什么我想念的?


编辑以澄清...

在上面列出的这种情况下......他们将使用他们自己的 php 服务器(不是我的),并使用包含来自那里的 php 文件从我的服务器获取信息。

4

2 回答 2

4

如果有人试图对allow_url_fopen您的脚本执行远程包含,请记住,从您的服务器的角度来看,这是一个常规的 HTTP 请求。然后,正确配置的服务器将执行PHP 代码,而不是将其作为源代码发送。因此,假设您的数据库配置文件不产生任何输出,他们将收到的将是一个空白文档。他们不会看到或访问您的变量。

结果与将 Web 浏览器指向http://www.mywebsite.com/dbpwd.php. 你会看到一个空白页。

正如我所提到的,这依赖于您的 Web 服务器被正确配置为执行 PHP 代码(如果您的代码在其他情况下运行时应该是这样)。但是,始终建议将敏感文件放在服务器的文档根目录之外,以避免在您的服务器配置不正确时出现此问题。

要回答问题的另一部分,您不需要取消设置任何变量。当不再需要它们时,PHP 会清理它们,它们不会对您的安全构成威胁。

于 2012-11-10T02:29:41.190 回答
0

恕我直言,关闭数据库连接就足够了,您不需要取消设置这些变量。

同样正如 Michael Berkowski 指出的那样 - 您需要将 db 连接文件放在文档根目录之外。

于 2012-11-10T02:38:49.087 回答