2009-03-03 13 views
2

我注意到,Magento将MySQL连接细节存储在XML文件中,该文件不在docroot上方保护。这似乎......很危险。将配置变量存储在站点根下的PHP站点上的XML文件中风险太大?

XML似乎是一种便捷的方式来存储配置数据,除了一件事情,打字http://www.domain.com.au/library/config.xml将向世界展示您的私人细节!

我继续使用XMl文件并将其添加到我的.htaccess文件中。

<Files ~ "\.xml$"> // regex files that end with xml extension 
Order allow,deny 
Deny from all // don't show them 
</Files> 

现在我高兴这个,现在我也不太清楚。如果.htaccess文件被意外删除/损坏(除人为错误之外是否会发生这种情况),以及如果有一天我想将应用程序放置在非Apache服务器上......每个服务器是否都具有阻止XML文件的等效功能,以及如果他们这样做,他们是否可以像.htaccess那样在文件夹级别进行更改(而不仅仅是一个httpd.conf文件)。

我的问题是...... XML的便利性(易于更新,需要修补的设计师不会感到如此恐吓)超过潜在问题(暴露私人数据)?

回答

1

我个人只会以不能直接访问的格式或位置的格式存储配置文件信息。所以我要么使用docroot上方的XML格式,要么使用PHP $ config ['varname'] ='value'格式。如果直接调用后面的方法,只会呈现空白页面(只要它是全部PHP并且不包含HTML并且不会回显)。

Gallery,vBulletin和Joomla都使用我提到的第二种方法。我知道我之前在其他PHP相关问题中提到过这些项目,但它似乎是一种在项目之间广泛使用和接受的方法。

0

简短的回答,不,它不是。但更好的问题是。如果它没有存储在配置文件中,你会保留它吗?

+0

在类似config.php脚本块会强制解析器不显示它。那么,至少在PHP模块失败之前。 – alex 2009-03-03 06:21:16

+0

我说只是保持你的网络服务器DocRoot以外的配置,你会没事的。 – 2009-03-03 06:31:29

0

我完全在这个inventix同意,但也提供这应该要么

名称合并文件存储配置信息

.htanything.whatever

为服务器级的所有文件第三选项外部用户无法读取这些文件。 {这就是为什么htaccess始终是.htaccess}

personaly我只存储配置文件包括和文档外的函数库但明白一些connot因此总是在它们上面使用.htnaming约定也包含$ includesfolder必须由在这样的服务器上使用软件的人在文档树内移动