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

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

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

有什么想法吗?我尝试使用 htaccess,但我可能不够熟练,因为它也阻止了 php 脚本对文件的访问。

提前致谢。

答案1

使用.htaccess

重写规则示例

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

答案2

我认为另一种方法是:

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

答案3

如果您要求使用 .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>

您还需要创建一个 .htpasswd 文件并更新AuthUserFile此文件的位置路径.... 有一个可用的工具http://tools.dynamicdrive.com/密码/创建这些.htaccess.htpasswd文件。

答案4

通过 php 脚本显示的文件

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

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

所有逻辑都用 PHP 实现。所有凭证都存储在外部。

- 不得直接访问这些文件

将文件保存在 DocumentRoot 之外。

相关内容