防止盗链的简单技术
盗链,就是网站A提供某一项服务,比如说下载音乐、软件、电影等;而网站B则坐享其成,直接引用A网站的链接。这样的后果是,A提供了服务,但是却被B网站借花献佛,A网站的服务器和带宽等资源被盗用,却没有获得相应的点击率、人气和广告收入。
防止盗链的一个简单方法就是采用动态链接。对于同一个资源,在不同的时间或者不同的用户使用时,其链接是不定的。只有登录到该网站才能获取到当前的链接。而不是保存一下链接,可以不断的使用。这种动态可以是一次性的,也可以是时段性的。
对于资源S,如果有用户请求,那么首先按照时间、用户、IP等变量通过一个函数F,例如MD5、SHA1等哈希函数生成一个唯一标示符的地址,提供给用户。并且服务器将该标示符、时间、用户、IP、实际地址等关系,存储在数据库中。用户使用这个标示符,向服务器下载资源。服务器利用该标示符查找资源的实际地址和时间戳,如果没有过期,那么就将实际资源地址映射到该临时地址上,那么用户就可以下载或者建立连接了。如果该标示不存在或者过期,那么用户就无法下载该资源,必须重新获取新的临时标示地址。
这其中有三个地址相互映射,页面地址->资源临时地址->资源实际地址。用户要获取实际地址,必须从首页(后者从某一个子类首页)开始,一步步最终才能获得实际资源。
这对于防盗链有一定效果。例如B站企图盗链A站,那么它如果企图盗链,那么相对而言比较困难。甚至需要为此做专门的程序模拟实际操作。