V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gracece
V2EX  ›  问与答

Apache2 如何限制文件下载?

  •  
  •   gracece · 2013-10-31 12:58:53 +08:00 · 4492 次点击
    这是一个创建于 3829 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现阶段情况:
    用户所有的下载请求都由download.php来处理,记录下载次数以及其他一些信息处理,然后使用
    header ('Location: xxx') 跳转到文件真实地址。

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

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

    不知道有没有比较好的解决方法?
    1 条回复    1970-01-01 08:00:00 +08:00
    iodragon
        1
    iodragon  
       2013-10-31 13:04:20 +08:00
    xsendfile
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5559 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:06 · PVG 11:06 · LAX 20:06 · JFK 23:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.