2015-04-30 54 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。这是奇怪的,因为我有一个身份验证的根文件夹中的一个,它工作正常。这可能是问题吗? –