是否有必要取消设置php密码变量?

时间:2012-11-10 02:21:09

标签: php mysql security

是否需要取消我的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文件的include从我的服务器获取信息。

2 个答案:

答案 0 :(得分:4)

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

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

正如我所提到的,这依赖于您的Web服务器正确配置为执行PHP代码(如果您的代码在需要时运行则应该如此)。但是,建议总是将敏感文件放在服务器的文档根目录之外,以避免在服务器错误地配置时出现此问题。

要回答问题的其他部分,您不需要取消设置任何变量。 PHP将在不再需要它们时对其进行清理,并且它们不会对您的安全构成威胁。

答案 1 :(得分:0)

imho关闭数据库连接已足够,您无需取消设置这些变量。

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