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

标签 php apache .htaccess

我将尝试弄清楚如何保护目录免遭未经授权或未经授权的用户下载文件。 提前致谢。

最佳答案

找不到很好的副本,但稍微搜索一下就会得到这样的结果 PHP protect a folder

有一种简单的方法可以使用 php.ini 基于 PHP session 授权来限制文件夹访问。它需要为有效的授权 session 创建 stub 文件(并自动删除它们)。在 PHP 中,您可以:

if ($user_has_permission_to_download)
{
   touch("tmp/access-" . session_id()); 
}

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

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

RewriteRule .+  /deny   [L]

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

关于php - 保护可下载文件的最佳策略-php/mysql Apache2 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377117/

相关文章:

php - 如何使用 PHP+mySQL 从 XML 中获取所有节点?

php - FUELCMS(codeigniter)htaccess : order takes one argument, 'allow,deny', 'deny,allow',错误

php - 运行 PHP 时 Nginx 403 Forbidden

.htaccess - @font-face 仍然不能在 FireFox 中工作。字体类型的问题?

.htaccess - 如何使用.htaccess在codeigniter中实现动态子域?

regex - RewriteRule 不适用于加号(+ 或 *)字符

php - 我应该如何在ajax点击按钮时创建一个新的复选框?

PHP mysql_real_escape_string() : Access denied for user 'www-data' @'localhost'

php - 覆盖 PHP 配置选项

PHP curl : problem setting HTTP_HOST