所以,我现在正在修复一个旧项目。是的,它陈旧,丑陋且不安全,但我没有得到报酬来重写整个事情,只是为了增加一个新功能。不幸的是,我遇到了一个名为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 :(得分: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
上阅读更多相关信息