询问类似 fileserve.com 的防盗链原理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
WinG
V2EX    服务器

询问类似 fileserve.com 的防盗链原理

  •  
  •   WinG 2010-09-04 00:50:54 +08:00 7223 次点击
    这是一个创建于 5517 天前的主题,其中的信息可能已经有所发展或是发生改变。
    14 条回复    1970-01-01 08:00:00 +08:00
    zaykl
        1
    zaykl  
       2010-09-04 01:01:58 +08:00
    刚好某日自己也考虑过这个问题,不过是想到的点也不是很ok,大致是创建一个临时表,然后key与文件对应.后台有个程序每过一段时间把这记录给清除掉...


    比较笨的想法.
    WinG
        2
    WinG  
    OP
       2010-09-04 01:20:33 +08:00
    他这个几乎是立刻改变地址的
    GordianZ
        3
    GordianZ  
       2010-09-04 02:15:54 +08:00
    @WinG 应该就是@zaykl 的办法,加了个时间的HASH
    request之后按照request的时间(和其它的信息)HASH出一个KEY,然后生成地址,dispatcher一接收到访问可以立即删除/flag这个key,保证不被重用
    gonbo
        4
    gonbo  
       2010-09-04 11:43:20 +08:00
    这个防盗链,需要一个防盗链的key
    WinG
        5
    WinG  
    OP
       2010-09-04 15:52:46 +08:00
    @GordianZ 还是没懂 那不文件目录也改变了??..
    WinG
        6
    WinG  
    OP
       2010-09-04 16:06:10 +08:00
    @GordianZ 不是真实地址那会不会探测到真实地址?
    GordianZ
        7
    GordianZ  
       2010-09-04 16:39:53 +08:00
    @WinG 这种专门的下载站会写一个模块来buffer文件然后输出,并不是静态访问,所以不存在真实地址,每次下载所返回的资源都只在当前session有效。
    WinG
        8
    WinG  
    OP
       2010-09-04 16:56:56 +08:00
    @GordianZ 能通俗点详解流程吗。。谢谢哈..!!
    WinG
        9
    WinG  
    OP
       2010-09-04 17:10:26 +08:00
    方法6:使用动态文件名

    也叫动态钥匙法,当用户点击一个下载链接时,先在程序端计算一个Key(使用一定规律产生的Key,最好不要使用随机字符串例如GUID,并且这个 Key必须有一定时效的),然后在数据库或Cache里记录这个Key以及它所对应的资源ID或文件名,最后让网页重定向一个新的URL地址,这个新 URL地址里需要包含这个Key。当浏览器或下载工具发出下载请求时,程序先检测这个Key是否存在,如果存在则返回对应的资源数据。
    使用这个方法的好处是下载工具也可以下载,并且在Key失效前可以断点续传,并且可以通过Key来控制下载的线程数。

    使用这个方法(包括以上所有支持下载工具的方法)的缺点是:当任意一个用户下载成功之后,你的资源就会被一些下载工具列入“资源候选名单”,以后其他人在其他地方下载同样的文件时,下载工具会不断连接你的服务器,即使你的文件已经删除或者Key已经失效了,这样会造成类DDos攻击的后果,下面再介绍两个即可以让下载工具下载,又可以防止盗链的方法。
    WinG
        10
    WinG  
    OP
       2010-09-04 17:10:59 +08:00
    @GordianZ 下载工具会不断连接你的服务器,即使你的文件已经删除或者Key已经失效了,这样会造成类DDos攻击的后果,下面再介绍两个即可以让下载工具下载,又可以防止盗链的方法。

    会吗???
    GordianZ
        11
    GordianZ  
       2010-09-04 17:35:09 +08:00
    @WinG 让下载工具下载并且防盗链是不现实的,现在的下载工具可以仿UA/引用页/cookie,你看看QQ中转站的盗链就知道了。如果想防盗链必须用单个session且不能续传的方法,在国内也不是很现实……
    CupTools
        12
    CupTools  
       2010-09-06 01:38:37 +08:00
    将用户的UA和IP hash了,这不就行了
    muxi
        13
    muxi  
       2010-09-06 10:46:21 +08:00
    原理很简单,就是根据一些条件做个一段时间内有效的可逆hash,参见
    http://wiki.nginx.org/NginxHttpAccessKeyModule
    WinG
        14
    WinG  
    OP
       2010-09-07 23:16:43 +08:00
    @GordianZ @CupTools @muxi 谢谢谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2692 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 14:51 PVG 22:51 LAX 07:51 JFK 10:51
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86