我正在寻找一个非常简单的PDF文件下载保护,但我不知道从哪里开始。
这是一个PDF文件,我在受密码保护的WordPress页面上提供下载链接。当有人注册我的列表时,他们会收到一封包含密码的电子邮件。在受密码保护的页面上是指向PDF文件的链接
我只希望此页面(特定网址)能够访问该文件。因此,除非您拥有该页面的密码,否则链接共享是不可能的。
这可以通过htaccess文件实现吗?像这样:
<Files *.pdf>
order Deny,Allow
Deny from all
Allow from *SPECIFIC_URL*
</Files>
请帮忙
...谢谢
答案 0 :(得分:0)
我会创建用于检查auth的php脚本,如果auth正常,则返回带有正确标题的pdf。并使用链接到页面上的脚本而不是直接链接到pdf。 Pdf文件可以放在“web”文件夹之外的某个位置。
答案 1 :(得分:0)
好吧,对于每次注册,您都可以分配一个&#39; download_state&#39;数据库中的用户使用默认值&#39; working&#39; ,以及当用户访问受保护的页面时 页面会检查是否&#39; download_state&#39;还在。 如果是php将提供下载链接并更新&#39; download_state&#39;到期&#39;
If (download_state == "working")
{
ServeDownload
Update download_state to 'expired'
}else
Die("Your link is expired please get a new one")
对于服务下载,您可以使用以下示例
$file_url = path/document.pdf;
header('Content-Type: application/pdf');
header("Content-Disposition:attachment;filename='document.pdf'");
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=".$pdfname);
readfile($file_url);
通过这种方式,pdf文件位置将被隐藏。
答案 2 :(得分:0)
你可以实现一些安全性,而不是你想要的,但作为临时占位符,非常容易设置,.htaccess密码保护。它会提示用户输入密码,你可以动态生成htpassword,并提供给用户。当然它不是无障碍的方法,但它总比没有好。并且您可以拥有自己的“管理员”密码,可以在没有人访问文件时写入。但正如我所提到的,它是暂时的,但应该很容易设置。
(来自http://www.htaccesstools.com/articles/create-password-for-htpasswd-file-using-php/的代码)
<?php
// Password to be encrypted for a .htpasswd file
$clearTextPassword = 'some password';
// Encrypt password
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));
// Print encrypted password
echo $password;
?>