在这个信息化的时代,资源被盗用是一件很让人厌恶,但又很常见的事。比如,之前郭敬明的小说《梦里花落知多少》剽窃庄羽小说《圈里圈外》一事,虽然郭敬明通过个人微博向庄羽道歉,并表示“将把《梦里花落知多少》这本小说出版后获得的线上线下所有的版税以及全部收益汇总计算清楚之后,全部赔偿给庄羽女士”。而庄羽在接受郭敬明道歉后,提议一起成立一个反剽窃基金。
而互联网不单让资源流传越发便利,也让被盗用的资源从文字扩展到了图片、视频等。可是并不是每一个人都会像庄女士那样幸运,能得到应有的赔偿。因此既然不能完全阻止别人盗窃资源,那么采取防盗措施在一定程度上防止自己的资源被盗用,就变得重要起来。那么如何保护我们的资源不被盗用呢?
要知道如何防盗,最优先的是知道自己什么时候被盗了,不然你都不知道自己被盗了,也就无从谈起防盗了。以个人网站为例,你刚上传好了自己拍摄的新图,却发现网站访问速度越来越慢。你以为是自己拍摄的新图吸引了大波用户,就打开网站后台查看今天的访客数,却发现只有寥寥几人。
遇到这种情况,很遗憾的告诉您:您的网站资源很大可能被别人盗用了!当你发现此事,并急急忙忙删除了这些资源,想让服务器缓一缓的时候,你会发现,自己的网站好像还是没变快多少,查看访问日志,发现请求还是会从四面八方涌过来。这种时候我们就可以用上防盗了。
常见的防盗方式
最常见的防盗方式有以下几种。虽然这些方法并不能完全解决资源被盗的情况,但可以有效减少资源被盗的影响:
-
使用 Referer 防盗链
这个方法是最常见的,举个简单的例子来说,就是当您网站程序接收到来源是 xx 域名的下载请求时,会先判断请求头里的 Referer 字段的值。如果是自己认识的域名,即自己设置的 Referer 白名单中的域名,就是合法的请求,可以下载,否则返回错误信息。
-
使用登录验证
这个方法一般是用在论坛、社区这些需要登录的网站上,当用户访问一个资源时,先判断该请求是否是通过登录验证的。是的话,用户可以安全下载;如果不是,则返回错误信息。
-
使用 Cookie 验证
这个方法跟上面的差不多,就是在下载的页面产生一个动态的 Cookie。在处理资源下载请求时先判断请求的 Cookie 里面有没有正确的 Cookie。有的话,用户就可以合法下载,没有则会返回错误信息。
-
使用图形验证码
这个方法可以防止机器程序等不是“人”的请求对资源的下载。相信大家也遇到过,就是从多幅图片中选出正确的图片,否则不给通过。不过这个方法比较容易让正常的用户感到厌烦。
-
擅改资源内容
像网站上的热门电影,MP3 等,压缩包一般都比较大,这些大的压缩包文件是有很多可以插入数据的地方的。比如 MP3 有一个 tag 区,zip 有一个备注区,电影文件内容的随便一个地方,只要在下载过程中动态的往这些地方注入一些随机字节,就可以让整个文件的哈希值发生改变,可以有效的防止下载工具找上门来下载。