V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
gracece
V2EX  ›  问与答

Apache2 如何限制文件下载?

  •  
  •   gracece · Oct 31, 2013 · 5137 views
    This topic created in 4572 days ago, the information mentioned may be changed or developed.
    现阶段情况:
    用户所有的下载请求都由download.php来处理,记录下载次数以及其他一些信息处理,然后使用
    header ('Location: xxx') 跳转到文件真实地址。

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

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

    不知道有没有比较好的解决方法?
    1 replies    1970-01-01 08:00:00 +08:00
    iodragon
        1
    iodragon  
       Oct 31, 2013
    xsendfile
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3034 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:14 · PVG 23:14 · LAX 08:14 · JFK 11:14
    ♥ Do have faith in what you're doing.