保护文件免受未经授权的访问

我有这个非常大的问题,我一直试图解决在过去的几天没有成功。 我有一些文件是课程表,这些文件从外部源(html格式)导入到服务器。 我需要阻止直接访问这些文件。 它们由PHP脚本显示。 所以,这些是假设: – 通过php脚本显示的文件 – 文件不能以任何方式修改(html文件) – 必须没有直接访问这些文件 – 服务器是Apache

有任何想法吗? 我尝试过使用htaccess,但我可能不够能干,因为它阻止了对php脚本文件的访问。

提前致谢。

我想另一种方法是:

  1. 创build一个键值表,重命名文件,旧名称是关键,值是新的(可能是md5('xx')或其他长/不规则/唯一string)。
  2. 访问文件时查找“键值”表。

如果您要求使用.htaccess的一个或多个文件保护,那么你可以做下面的事情…

AuthName "Restricted Area" AuthType Basic AuthUserFile /path/to/passwordfile/.htpasswd AuthGroupFile /dev/null <Files admin.php> require valid-user </Files> <Files protected.htm> require valid-user </Files> <Files protected2.htm> require valid-user </Files> 

您还需要创build一个.htpasswd文件,并将AuthUserFilepath更新为该文件的位置….有一个可用的工具http://tools.dynamicdrive.com/password/来创build这&#x4E9B;.htaccess.htpasswd文件。

文件通过php脚本显示

将密码存储在某处( 安全地 )。 HTML表单提交凭证。 $_POST来读取它们。 PDO来阅读它们。 包括如果用户被授权包括文件。

文件不能以任何方式修改(html文件)

所有的逻辑都在PHP中。 所有凭证都存储在外部。

必须不能直接访问这些文件

将文件保存在DocumentRoot之外。

使用.htaccess

示例重写规则

 RewriteEngine on RewriteRule ^folder/$ http://path_to_different_page.php