是require_once" ../../ file / config.php"在现代标准中隐藏配置文件的最安全方式(2013)?

时间:2013-01-18 19:06:25

标签: php mysql security

有很多信息,我试图将所有这些信息纳入php中的单页网页应用程序。不试图进入辩论,只是在现代网站中寻找标准,或者如果意见分歧,只有一些风险,这个和其他选择需要。

此外,我在一个connect.php文件中,在域根目录中有我的数据库连接,并考虑移回一个级别。

<?php require_once "../../folder/config.php";
session_start();
ob_start();
$access = 'my_value'; 
// ...
if($connectDatabase == TRUE) {
  $action=TRUE;
  include('connect.php');
}

3 个答案:

答案 0 :(得分:4)

只要所有*.php文件都通过PHP解释器提供,那么[{1}}和<?php之间的内容与您的应用程序一样安全。旧的命名方式包括类似?>引起的问题,因为如果您知道扩展名,dbinfo.inc文件只是作为文本提供。我更喜欢inc.dbinfo.php,class.mysql_db.php,view.news.php等用于目录列表中的逻辑分组,但是只要它们以*.inc结尾,就更喜欢它们自己。

一旦有人能够执行代码注入,或者在服务器上放置/检索原始文件,那么存储数据库信息的Web根目录上的层数并不重要。

答案 1 :(得分:0)

它应该是安全的,但我建议不要在您的网站上编制索引。这将不允许人们去那个目录看到php文件,如果他们试图去connect.php他们将看不到任何东西

http://www.ducea.com/2006/06/26/apache-tips-tricks-disable-directory-indexes/

答案 2 :(得分:-2)

将配置文件移到公用文件夹之外,以便无法通过URL访问它。或者,使用.htaccess文件来保护包含

的文件夹
deny from all

<Files config.php>
    Order Deny
    Deny From All
</Files>