Apache2 如何限制文件下载?

2013-10-31 12:58:53 +08:00
 gracece
现阶段情况:
用户所有的下载请求都由download.php来处理,记录下载次数以及其他一些信息处理,然后使用
header ('Location: xxx') 跳转到文件真实地址。

效果:
简单粗暴,但同时用户也能轻易直接拼接一个URL访问该文件,而不用经过download.php,更可恶的是有爬虫无休止地爬(明明那个文件早就删除了,还是一直请求)。

想要解决上述问题,有两种想法,一是把资源所在文件夹放在http不可访问的地方,然后在download.php内使用readfile()之类的方法来读取,但是处理大文件的时候怕内存吃不消。
二是用.htaccess 限制referer,但是这个用起来更加不灵活,因为无法在服务器端设置referer(要不然用cURL?),且referer也能轻易被伪造。

不知道有没有比较好的解决方法?
4636 次点击
所在节点    问与答
1 条回复
iodragon
2013-10-31 13:04:20 +08:00
xsendfile

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/87554

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX