如何拒绝访问目录而不限制它本地?

时间:2015-04-30 08:28:14

标签: .htaccess

所以,我现在正在修复一个旧项目。是的,它陈旧,丑陋且不安全,但我没有得到报酬来重写整个事情,只是为了增加一个新功能。不幸的是,我遇到了一个名为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文件实现这一目标?

1 个答案:

答案 0 :(得分: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

上阅读更多相关信息