拒绝直接URL访问文件

时间:2010-04-19 14:19:55

标签: http

是否有人建议如何只允许从我网站上的网页下载文件,如果有人在浏览器中输入或粘贴直接网址,则拒绝访问?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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直接粘贴到浏览器时不允许下载的要求进行了修改。)

答案 2 :(得分:0)

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