6
头图

在这个信息化的时代,资源被盗用是一件很让人厌恶,但又很常见的事。比如,之前郭敬明的小说《梦里花落知多少》剽窃庄羽小说《圈里圈外》一事,虽然郭敬明通过个人微博向庄羽道歉,并表示“将把《梦里花落知多少》这本小说出版后获得的线上线下所有的版税以及全部收益汇总计算清楚之后,全部赔偿给庄羽女士”。而庄羽在接受郭敬明道歉后,提议一起成立一个反剽窃基金。

而互联网不单让资源流传越发便利,也让被盗用的资源从文字扩展到了图片、视频等。可是并不是每一个人都会像庄女士那样幸运,能得到应有的赔偿。因此既然不能完全阻止别人盗窃资源,那么采取防盗措施在一定程度上防止自己的资源被盗用,就变得重要起来。那么如何保护我们的资源不被盗用呢?

要知道如何防盗,最优先的是知道自己什么时候被盗了,不然你都不知道自己被盗了,也就无从谈起防盗了。以个人网站为例,你刚上传好了自己拍摄的新图,却发现网站访问速度越来越慢。你以为是自己拍摄的新图吸引了大波用户,就打开网站后台查看今天的访客数,却发现只有寥寥几人。

遇到这种情况,很遗憾的告诉您:您的网站资源很大可能被别人盗用了!当你发现此事,并急急忙忙删除了这些资源,想让服务器缓一缓的时候,你会发现,自己的网站好像还是没变快多少,查看访问日志,发现请求还是会从四面八方涌过来。这种时候我们就可以用上防盗了。

常见的防盗方式

最常见的防盗方式有以下几种。虽然这些方法并不能完全解决资源被盗的情况,但可以有效减少资源被盗的影响:

  • 使用 Referer 防盗链

这个方法是最常见的,举个简单的例子来说,就是当您网站程序接收到来源是 xx 域名的下载请求时,会先判断请求头里的 Referer 字段的值。如果是自己认识的域名,即自己设置的 Referer 白名单中的域名,就是合法的请求,可以下载,否则返回错误信息。

  • 使用登录验证

这个方法一般是用在论坛、社区这些需要登录的网站上,当用户访问一个资源时,先判断该请求是否是通过登录验证的。是的话,用户可以安全下载;如果不是,则返回错误信息。

  • 使用 Cookie 验证

这个方法跟上面的差不多,就是在下载的页面产生一个动态的 Cookie。在处理资源下载请求时先判断请求的 Cookie 里面有没有正确的 Cookie。有的话,用户就可以合法下载,没有则会返回错误信息。

  • 使用图形验证码

这个方法可以防止机器程序等不是“人”的请求对资源的下载。相信大家也遇到过,就是从多幅图片中选出正确的图片,否则不给通过。不过这个方法比较容易让正常的用户感到厌烦。

  • 擅改资源内容

像网站上的热门电影,MP3 等,压缩包一般都比较大,这些大的压缩包文件是有很多可以插入数据的地方的。比如 MP3 有一个 tag 区,zip 有一个备注区,电影文件内容的随便一个地方,只要在下载过程中动态的往这些地方注入一些随机字节,就可以让整个文件的哈希值发生改变,可以有效的防止下载工具找上门来下载。

又拍云一键防盗

以上方法都需要大家在本地对资源对服务器进行相关设置,如果你没有对应的代码知识,操作起来会有点困难,这种时候选择接入云服务商就是一个不错的选择。大部分云服务商都提供多种防盗方式,以我们又拍云为例:

水印防盗

通过在资源画面内添加水印,这样就算被盗走,别人查看时也能从水印看到视频来源。又拍云提供两种水印添加方式:

  • 第一种,在文件上传到又拍云存储的时候,可以通过添加水印参数 /watermark/url/<url> 实现对图片水印的添加。视频也是如此,只是参数变成/wmImg/<watermark_img>,其中水印图片需要提前上传到云存储服务下。<url>,<watermark_img> 表示水印图片路径的 Base64 编码后的字符。如/watermark/url/L3BhdGgvdG8vd2F0ZXJtYXJrLnBuZw== 表示把 /path/to/watermark.png 这张图片作为水印。想了解更多可以点击↓↓阅读原文↓↓
  • 第二种,可以直接在又拍云控制台对应的云存储服务下,创建缩略图版本命名为【watermark】,并开启里面的水印功能。再通过 “url + 间隔符 + 版本号” 的形式,在访问图片的时候调用该缩略图版本,就可以在访问图片的时候看到设置的水印了。

除了添加水印,又拍控制台还支持设置多种防盗链(例如上文提到的 Referer 防盗链),而且只需要在控制台按照说明完成相关步骤达到防盗效果。

IP 黑白名单

又拍云提供全部资源的访问日志,一旦发现资源被盗用,那么可以通过访问日志查到对方的服务器 IP,将此 IP 加入黑名单后,对方将永远无法访问到你的任何资源。也就是拒绝对方访问。

地区访问限制

如果对方拥有很多IP,而无法具体判断是哪个,那不妨看看地区访问限制。此功能可以允许或禁止特定区域的终端用户对网站资源的访问,支持按国家/地区、省份、运营商等维度进行配置。

Referer 防盗链

这个就是上面提到的最常见的防盗链方式,但是在又拍云使用非常简单方便。只需要开启 Referer 黑名单,然后把盗用了您图片的网站地址填写进去,点击确定,对方盗用的图片就会无法显示。而查找盗用图片的网站,也可以通过又拍云日志功能来查询。

Token 防盗链

上文中有提到,防盗链并不能完全阻止资源被盗用的情况,如果盗链服务器使用动态 IP,我们封禁起来就很麻烦;客户请求不携带 Referer,那么就会跳过 Referer 防盗链。

Token 防盗链就能够处理这些问题。通过设置 Token 密钥,配合签名过期时间来控制资源内容的访问时限。这样用户必须携带正确的 Token,且只能在规定时间内对该链接进行访问,可以有效的防止用户恶意请求,造成没必要的损失。

回源鉴权

我们也可以考虑回源鉴权,即在源站配置一台鉴权服务器,并设置鉴权方式。之后 CDN 边缘节点每次接受到请求之后,都会回用户源站的鉴权服务器进行验证,验证通过之后才认为是合法请求,CDN 才会继续提供服务。

但是高级别的防盗方式也意味着防盗成本的上升,如何选择合适自己防盗链也尤为重要。大家也可以看下《如何选择适合自己网站的防盗链》 互联网带给我们丰富的娱乐生活,让我们查找心仪的资源越来越方便,但是一定要记得支持正版,支持原版,盗用他人资源是侵犯了他人知识产权。如果你面临着自己资源被盗的情况,除了使用技术手段进行防止,必要时刻也要拿起法律武器维护自己的合法权益哦~

推荐阅读

进击的 Ansible(二):如何快速搞定生产环境 Ansible 项目布局?

服务端渲染基础


云叔_又拍云
5.9k 声望4.6k 粉丝

又拍云是专注CDN、云存储、小程序开发方案、 短视频开发方案、DDoS高防等产品的国内知名企业级云服务商。