【问题标题】:.htaccess stub files to protect site with php session auth.htaccess 存根文件以使用 php session auth 保护站点
【发布时间】:2012-04-14 15:19:22
【问题描述】:

我正在尝试创建一个网站,授权用户可以在其中下载 pdf 文件... pdf 文件在 webroot 中 auth 是通过 php 会话...

为了防止文件被盗链,我找到了一个可行的解决方案

php: 在成功登录时写入一个名为 session id 的新文件:

if($logged_in) {
    touch('auths/' . session_id());
}

然后 .htaccess 检查会话 id 文件是否存在,如果文件不存在,则重定向到登录..

# checks if a file named 
RewriteCond %{HTTP_COOKIE} PHPSESSID=(\w+)
RewriteCond %{DOCUMENT_ROOT}/auths/%1 -f
RewriteRule ^(.*)$ $1
RewriteRule /* /login.php [L]

到目前为止,这是有效的,做了一个简单的测试环境....

问题是这需要与使用以下 .htaccess 的 cakephp 应用程序结合使用:

# CakePHP
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

所以我的问题是如何修改 .htaccess,所以它只检查请求是否为 *.pdf 并且还与 cakephp 规则一起使用...

谢谢!!

【问题讨论】:

  • 您的应用程序使用 ACL 吗?

标签: .htaccess cakephp mod-rewrite


【解决方案1】:

我不认为结合 .htaccess 和 CakePHP 会做得很好。两者都是不同类型的软件,没有本地通信方法。在您为 Apache 编写自己的模块之前,我认为您不会做出一个好的解决方案。在您的位置上,我宁愿将整个文件读入变量,也不愿用正确的标题打印它。一种消耗内存但安全、独立于服务器且在未来很容易修改的解决方案。

【讨论】:

    猜你喜欢
    • 2011-07-10
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多