【发布时间】:2010-09-28 11:09:09
【问题描述】:
我正在制作一个易于设置、无数据库的 PHP 网站,它将其数据存储在文本文件中。
设置是 Linux/Apache/PHP 服务器。
到目前为止,信息一直不敏感,所以我存储在:../data/system.txt 理论上有人可以在他们的浏览器中输入(url)/data/system.txt 并以纯文本形式查看数据文件,这 到现在为止都没有关系。
但现在我想存储密码,以便不同的组可以登录并查看不同的信息。这些网站将是“low interest”和“low profile”网站,如果有人无聊到入侵该网站并看到信息,这不是世界末日,我只是想提供一点技术障碍,这样网站就可以拥有个人和团体访问权限,同时保持轻松创建例如无需设置和维护 50 个数据库即可访问其中的 50 个站点。
我的问题是,在 Apache 上保护这些文本文件的最佳方法是什么?
我能想到以下几点:
1) 将“../data”目录更改为某个随机目录名称,例如“../data928374928374”作为一种混淆措施
2) 将 .txt 文件更改为 .php 并使用 PHP 代码保护文本,如下所示:
<?php
echo 'access denied';
die;
/*
...store data here...
*/
?>
3)把这个.htaccess文件放在/data目录下,可以保护.txt等结尾的文件:
<FilesMatch "\.(sqlite|xml|txt|csv|php)$">
Deny from all
</FilesMatch>
以下是我对这些的看法:
1) 我可以想象在这样的服务器上有查找隐藏目录名称的方法,这是真的吗?
2) 有一个名为 .php 的文本文件并在其中包含 PHP 代码是尴尬,因为我希望非技术人员能够编辑文本文件并将它们作为 -位于数据目录中并让它们工作,无需“用技术代码教育它们”。更不用说这会弄乱大多数编辑器中的语法着色。
3) 此 .htaccess 文件是否适用于所有服务器> 例如如果我只是将网站原样复制到任何 Apache 服务器,我是否保证文件将受到保护,或者是否有其他设置可以关闭 .htaccess 文件对 Apache 服务器的影响?
【问题讨论】: