2009-03-03 15 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必須由在這樣的服務器上使用軟件的人在文檔樹內移動