2010-04-19 163 views
1

有没有人有任何建议如何只允许从我的网站上的网页下载文件,并拒绝访问,如果有人输入或粘贴到浏览器的直接URL?拒绝直接URL访问文件

回答

2

不是直接链接到您的文件,而是链接到首先检查引用链接的php/asp/python/whatever脚本。如果引荐来源位于您的域中,则重定向至实际文件。

+0

重定向到文件不符合OP的标准。一旦浏览器被重定向到直接的URL,用户就有了直接的URL,并且可以直接粘贴。你可以让脚本自己提供文件,但是在那个时候,你最好还是使用mod_rewrite(或者IIS等效)解决方案。 – ThatBlairGuy 2014-01-28 16:31:38

0

不知道您使用的是哪种语言,但在.NET中,您可以将它们添加到不可浏览的App_Data文件夹中,并编写自定义处理程序(.ashx)文件以检索文件。这增加了您的处理程序在将文件提供给客户端之前可以执行一些规则检查的安全级别。

1

这取决于你的网络服务器。通过Apache,您可以使用mod_rewrite rules来阻止HTTP_REFERER不是来自您自己站点的任何下载尝试。 (我想象存在IIS类似的东西)

修改“阻止内嵌图像”的例子,你最终是这样的:

RewriteCond %{HTTP_REFERER} !^http://YOUR_SITE_HERE/ALLOWED_PATH/.*$ [NC] 
RewriteRule .*\.PROTECTED_FILE_SPEC$ [F] 

有一个警告这里,这是一个重要问题。 并非所有浏览器都发送HTTP_REFERER标头。因此,这不仅会阻止您的主页下载,还会在浏览器不发送HTTP_REFERER时阻止您的网站下载。

(请注意,这些规则的原始版本将允许下载时,浏览器不支持HTTP_REFERER。我修改了它的基础上不允许下载时,URL直接粘贴到浏览器的要求。)