保护可下载文件的最佳策略-php/mysql Apache2服务器

mor*_*ind 11 php apache .htaccess

我将试图弄清楚如何保护目录免受未经授权或未被识别的用户下载文件.提前致谢.

mar*_*rio 11

找不到一个好的重复,但一点点搜索会带来像这样的PHP保护文件夹的结果

有一种简单的方法可以使用php限制基于PHP会话授权的文件夹访问.它需要为有效的授权sesssions创建存根文件(并自动删除它们).在PHP中你做:

if ($user_has_permission_to_download)
{
   touch("tmp/access-" . session_id()); 
}
Run Code Online (Sandbox Code Playgroud)

然后一个简单的rewriterule + rewritecond可以用于授权:

RewriteCond %{HTTP_COOKIE}        PHPSESSID=(\w+)
RewriteCond ../tmp/access-%1      -f 
RewriteRule ^(.+)$  $1  [L]

RewriteRule .+  /deny   [L]
Run Code Online (Sandbox Code Playgroud)

当找到相应的cookie值并且存在授权存根文件时,第一个块允许访问.第二条规则阻止其他任何人访问.