隐藏下载URL
Hide download URL
我试图让用户看不到可下载PDF文档的URL,这样他们就无法从其他地方访问它。我需要在页面左下角隐藏URL(当他们鼠标悬停时),在浏览器打开地址栏时隐藏URL。我需要它在所有浏览器上工作。
我的HTML如下所示:
<a href="http://www.example.com/files/pdf/a34501.pdf">View PDF</a>
链接应该是这样的:
查看PDF
原因是用户必须提供一个代码才能下载他们的文档,但如果他们能看到URL,他们就可以很容易地下载其他人的文档(他们只需要在"a34501.pdf"部分更改一个数字)。
我读到一些关于使用JavaScript函数加密URL或使用外部PHP文件的内容。然而,我不知道该怎么做。
谢谢。
隐藏url会让最不懂技术的用户感到困惑,但不会让任何愿意下载你的文件并拥有最低技术知识的人感到困惑,如果你需要将文件隐藏在代码(或付费墙)后面,你可以使用PHP脚本来验证用户并吐出相应的文件,一个小例子如下:
if($validUser)
{
$path = $fileName;
$size = filesize($path);
$fp = fopen($path, "rb");
$content = fread($fp, $size);
fclose($fp);
header("Content-length: ".$size);
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=".$fileName.";" );
echo $content;
}
exit();
这假设文件在服务器中具有物理性,但如果文件在数据库或任何其他存储介质中,则可以对其进行修改。当然,您必须首先验证用户是否有权下载该文件,但这取决于您。
您可以使用php脚本来提供文档,同时仍然允许php验证用户的会话信息等。
过程如下:
- 用户输入一个唯一的代码(在验证用户所需的附加身份验证之后)
- 生成一个唯一的文档链接,例如:
http://domain/download.php?file=58afg71057ga82157
(示例) download.php
根据存储的会话信息验证用户请求——如果所有内容都检查出来,它会发送文件头()并传递文件内容
这个基本的文件下载教程提供了以这种方式提供文件的基本知识。您需要改进这个基本教程,但它应该让您了解这个过程是如何工作的。
建议:
- 每个用户使用唯一的"密钥"(允许同一用户重新下载);或者
- 一次性密钥,只允许一次下载;或者
- 要求用户身份验证,以便您知道是否应该"允许"他们使用密钥
- 不要使用"filename.ext"来定位要下载的文件,将名称存储在会话中或使用存储在数据库中的唯一标识符
- 不要只是复制粘贴一个示例脚本,它们通常非常不安全
相关文章:
- 如何使用phonegap从android中的URL下载文件
- 从IE 11中的HTTP URL下载blob
- 如何通过URL下载文件,然后获取其名称
- 如何使用javascript从url下载图像并将其保存到本地目录
- 阻止通过URL下载
- 如何使用chrome文件系统api从chrome应用程序中的url下载图像
- Node.js:从 PHP URL 下载(自动生成的)文件
- HTML强制用户从URL下载PDF文件
- 转到URL下载文件,但AJAX返回403.为什么以及如何解决
- “另存为blob”需要很长时间才能从给定的url下载文件
- 直接从url下载图片
- 尝试从URL下载并用node.js保存到文件中.这是我的问题
- 需要使用url下载PDF
- 在javascript中,从给定的url下载文件的等效wget是什么?
- 如何将进度条添加到从url下载文件到服务器的脚本
- 使用chrome.downloads从通过chrome.webRequest找到的URL下载文件
- ANGULARJS:如何从服务器接收到的URL下载PDF ?
- Javascript从URL下载图像
- 如何从url下载图像以在Photoshop脚本中使用(ExtendScript Toolkit)
- node.js从url下载图片