防止直接下载的选项

时间:2013-12-28 19:07:54

标签: php nginx download mirror

我想为Android ROM创建一个镜像站点,当然我不希望用户直接链接文件。我想到了很多选择。

1)控制推荐,这可以通过PHP或Web服务器完成,但这是一个糟糕的方法,因为这可以很容易地改变,并不是所有的浏览器都以相同的方式工作。

2)通过一些短会话和检查对用户进行身份验证,然后让用户下载。这可行,但我最终必须在网络服务器上放弃直接链接,并且没有人阻止用户共享此直接链接,从而破坏身份验证保护。

3)使用带有readfile()或类似的PHP:这绝对是最安全的方式,因为用户必须通过网站,但这需要许多PHP进程一次处理所有请求(每个用户一个进程)并考虑文件可能需要几分钟才能下载我需要多GB的RAM。不是很便宜或资源友好。

4)将文件暂时移动到某个位置,让用户下载有限的时间。这需要大量空间并可能导致I / O速度下降。也没有使用readfile()我无法知道文件是否已100%下载到可用空间。

没有别的我能想到的,有没有其他方法可以做到这一点,不需要巨大的RAM或硬盘空间,只需要一些智能脚本?

谢谢

1 个答案:

答案 0 :(得分:1)

检查nginx secure link module,允许人们直接从nginx下载(没有PHP参与下载过程),但也不允许直接链接到文件,并且你可以有一个到期时间/日期。