2015-04-30 50 views
0

所以,我目前正在修復一箇舊項目。是的,這是舊的,醜陋的和不安全的,但我沒有得到報酬重寫整個事情,只是添加一個新的功能。不幸的是,我遇到了一個叫settings.ini文件,並看到了這一點:如何在不限制本地訪問的情況下拒絕訪問目錄?

;database 
resources.db.adapter = "mysqli" 
resources.db.param.host = "xxxxxxxxxx" 
resources.db.param.username = "xxxxxxxxxxx" 
resources.db.param.password = "xxxxxxxxxxx" 
resources.db.param.dbname = "xxxxxxxxxxx" 
resources.db.isDefaultTableAdapter = true 

所以,我想通過網絡瀏覽器來訪問它們,因爲它是一個通常的txt文件,如果我知道地址,我可以訪問它從我想要的任何地方。我想我不必提及這對他們來說是一個巨大的風險。就我個人而言,我可以說我不在乎或沒有看到這一點,但說實話,我感覺不好。問題是,我無法訪問運行此工具的服務器,因此我無法使用防火牆阻止來自外部的訪問。

我的第一apporach是經由.htaccess,其中載有以下代碼:

<Directory "configs"> 
Satisfy Any 
Order Require,Allow,Deny 
Require local 
Deny from all 
</Directory>  

的文件是文件夾configs中,這是一個簡化的文件結構:

app 
|-- folder1 
|-- folder2 
|-- folder3 
|-- configs 
|-- .htaccess 

不幸的是,沒沒有工作,我仍然可以通過任何瀏覽器訪問該文件。有沒有機會通過.htaccess文件實現這一點?

回答

0

短短的.htaccess添加到文件夾configs與此內容:

Deny from all 

如果您仍然需要從一個特定的IP訪問(例如用於測試),你可以使用

order deny,allow 
deny from all 
allow from aaa.bbb.ccc.ddd 

其中aaa.bbb.ccc.ddd是你的IP。

您可以在此閱讀更多http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html

+0

沒有用,只是試了一下。我仍然可以不受任何限制地訪問該文件。 –

+0

似乎你的服務器沒有讀取.htaccess。在目錄中放一個.htacces和一些文本垃圾(只是一些隨機字母)。如果您仍然可以訪問該文件,則您的服務器不會讀取.htaccess。有關如何激活它們,請參閱http://askubuntu.com/a/429931。 – Reeno

+0

是的,它不讀取.htaccess。這是奇怪的,因爲我有一個身份驗證的根文件夾中的一個,它工作正常。這可能是問題嗎? –