相信所有建网站的朋友,特别是建立了资源分享站的朋友都遇到了相同的问题——盗链。在当下,依靠劝阻的方法解决盗链的问题是不现实的,那么,咱们没有任何方法解决盗链问题吗?实话说——没有。不过,咱们可以善用盗链者,从而合理又合法地达成其它目标。
* 何为“盗链”? *
简单地说,某个同学想要建一个下载站,然而捏,他/她手头没有足够多的资源(存储资源、带宽资源),在这种情况下,他/她可以升级服务器资源,也可以通过把下载链接指向到别人的服务器的直接下载链接来提供下载,这种“把下载链接指向别人的服务器的下载地址”的做法,就叫做“盗链”。
一旦咱们的资源被人盗链,后果是出了大量的美金,最后养肥了盗链者,最最后,自己分文也得不到。
* 几种防止盗链的思路 *
(1)HTTP Referer/HTTP Referrer 法:
这种方法实现起来最为简单,只需要设定服务器,检查来源网址是不是本站的网址。当咱们点击下载按钮时,浏览器除了打开下载链接,还会附上咱们点击下载按钮时的网址,如果是盗链,那么点击下载按钮时,肯定不是从本站的网址开始下载的,在这种情况下,服务器只需要拒绝下载即可。另外,HTTP Referer 和 HTTP Referrer 是同一个东东,前者是后者的错误拼写,但是沿用至今,别被搞晕哦。
这种方法有弊端,单独使用已经无效了,某些下载软件可以由用户输入点击下载按钮时的网址,更为严重的是,有的软件还可以保存这个网址供日后盗链者使用。
(2)下载地址密钥法
这种方法涉及到编程,而且要配合下载服务器使用。思路是在点击下载按钮时,生成密钥,并附加到下载地址当中来,然后,把密钥发给提供下载的服务器,下载服务器判断咱们输入的下载地址当中的密钥,正确则允许,错误则拒绝。当然了,咱们要给密钥规定生命周期,不然是没意义滴!
这样做虽打击了绝大多数的盗链行为,但是如果盗链者直接去请求生成下载地址的程序文件,照样可以破解这个限制,哈哈哈。
(3)登陆后下载
咱们好多的网站程序,都允许注册会员,只要把生成下载地址的程序设定为只允许登陆后访问,第二点的弊端就迎刃而解了。
不过捏,这样做一样会有弊端:首先,注册会员,登陆会员,这样的操作可能要降低使用者体验,其次,饼干也不是不能复制的,这里说的可不是能吃的饼干哦,而是 Cookies,哈哈哈。
(4)人机验证法
这种搞法,跟第三点的不同是,把“登陆会员”换成“人机验证”,避开了登陆会员的麻烦。最有名的解决方案是 Google 的 reCAPTCHA。当咱们使用人机验证技术后,要想获取下载地址,就必须经过 reCAPTCHA,然而,自动盗链程序暂时无法破解 reCAPTCHA。
但是它也不是绝对完美的,至少,在 Google 无法使用的地区,Google reCAPTCHA 也同样无法使用,一些替代的方案价格不菲。
* 善用盗链者 *
其实,刚才只是陪衬,现在才是重点哦。俺认为,与其对抗到底,不如化敌为友。俺要跟大伙儿分享的是——如何合理又合法地善用盗链者,而且善用到他/她心服口服。
(1)完全地,毫无保留地加密压缩文件
这是最简单粗暴的方法,把文件压缩起来,设定一个复杂的随机密码,并且夹杂咱们的网站域名。至于解压密码,当然只在咱们的网站上写出。这样,盗链者将不得不停止盗链的行为,但是捏,不小心下载了加密压缩包的使用者就要倒霉啦,因为,他们的时间和精力都被咱们白白浪费啦,咱们自己,显然也捞不到啥好处,属于最下下策。
(2)压缩并加密文件,但是允许查看目录
这招比刚才的好一些,至少,咱们可以在目录中设定一个文件,告知使用者解压缩密码,显然,解压密码一定是跟咱们的网站有联系的。这样,盗链者就帮咱们宣传了网站,属于比较好的方法。
(3)压缩并加密文件,但是不在压缩文件的目录中直接给出解压密码
接续上面的方法,咱们可以设定一个文件,名称大概是“要想获得解压密码,请访问 xxx”。这样做乜,不光让盗链者帮忙宣传了网站,他还被迫帮咱们带来访客,属于上策。
(4)延伸
刚才的方法虽然比较完美,但是如果碰到厉害的盗链机器人,它有能力从网站的发布页面获取解压密码,这时,咱们就要想办法对机器人隐瞒解压密码了,至于怎么做?这个就交给同学们去设计思路了,俺只是抛砖引玉而已哦。也欢迎大家在俺博客留言讨论。
最后,这些实际上的坏透了的事情,换种思路它并不算啥坏事,因为我们总能找到善用它的机会。实际上,利用盗链者的方法早在好多年前就被偶要下载的站长想出来了,在此深表谢意。俺只是一届搬运工而已。