将敏感信息存储在Apache服务器上的.PHP文件中有多安全?

时间:2010-09-28 11:09:09

标签: php linux security apache

我正在建立一个易于设置,无数据库的PHP网站,它将数据存储在文本文件中。

设置是 Linux / Apache / PHP 服务器。

到目前为止,信息一直是非敏感,因此我存储在:../data/system.txt理论上有人可以在浏览器中输入(url)/data/system.txt并查看普通数据文件文字,到目前为止无关紧要

但现在我想存储密码,以便各种群组可以登录并查看不同的信息。这些网站将是“低利率”和“低调”网站,如果有人厌倦了破解网站并查看信息,那么这不是世界末日,我只想提供一些技术障碍,以便网站可以拥有个人和群组访问权限,同时保留轻松创建例如其中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文件是否适用于所有服务器&gt; ,例如如果我只是按原样将网站复制到任何Apache服务器,我保证文件是否受到保护,还是有其他设置可以关闭.htaccess文件在Apache服务器上的效果?

3 个答案:

答案 0 :(得分:4)

  1. 这需要暴力 检查但是是的。
  2. 是的,它 使非技术变得复杂 人。另外,我想你可能会 不要做你想做的一切。
  3. .htaccess规则仅适用于 目录所在的Apache服务器 允许使用htaccess规则(和 允许覆盖参数,如果 这是必需的)。另请注意 文件的一些配置可能 不叫.htaccess但是 别的什么。
  4. 您也可以使用SQLite或类似的实际上不需要数据库服务器的东西。

    另一个想法是拥有像

    这样的结构
    /app
       /public_html
       /data
    

    并让public_html包含您的网站,该网站向外界展示,而且/数据无法访问(仅限您的脚本)。

    在/ app文件夹中,您可以创建一个htaccess规则,该规则将始终将所有要求重定向到punlic_html文件夹,以便外部用户无法看到它(可以在幕后进行)。如果两个文件夹都是包含.htaccess文件的副本,这对于一步部署来说就足够了

答案 1 :(得分:0)

存储包含htdocs树之外的任何敏感内容的文件?

答案 2 :(得分:0)

如果它只是一个PHP读取文件,那么如果你有一个好的主机就很容易。

大多数情况下,您的Web根目录不是服务器的根目录。

例如,在我的主机上,web目录的路径是/ data / domain / www /,它是浏览器中http://www.domain.com/的路径。

但我可以在该级别下创建一个文件夹,例如,/ data / domain / secret_folder /浏览器无法访问该文件夹,但如果它位于同一台服务器上,则可以通过PHP读取{{1} }