惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
小众软件
小众软件
美团技术团队
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
D
Docker
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
H
Hackread – Cybersecurity News, Data Breaches, AI and More
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
B
Blog
雷峰网
雷峰网
The Cloudflare Blog

博客园 - 逍遥子

MSN空间上的以往技术贴整理 Link Java to Maple - 逍遥子 C++的多态的被覆盖的问题 类引用机制 - 逍遥子 - 博客园 验证码(CAPTCHA)的破解技术 校内网狗狗刷骨机完全版(不再维护) - 逍遥子 - 博客园 HTTP外挂的简单实现 C++的中英文字符串表示(string,wstring) C++学习之2--10.09题目答案 C++学习之一--基本介绍 下面内容为C++的教学 VC6的C++标准支持不完全 XML基础学习1 数论中求公因子、求模逆的算法 QuickSort和MergeSort算法及其效率比较源代码 继承、重载运算符、虚函数与向量、矩阵运算 数据库时间段分组查询解决方法和数据转储方法 Java 通配符匹配查找文件 动态加载Java运行环境和运行实例
防止盗链的简单技术
逍遥子 · 2008-12-18 · via 博客园 - 逍遥子

      盗链,就是网站A提供某一项服务,比如说下载音乐、软件、电影等;而网站B则坐享其成,直接引用A网站的链接。这样的后果是,A提供了服务,但是却被B网站借花献佛,A网站的服务器和带宽等资源被盗用,却没有获得相应的点击率、人气和广告收入。

     防止盗链的一个简单方法就是采用动态链接。对于同一个资源,在不同的时间或者不同的用户使用时,其链接是不定的。只有登录到该网站才能获取到当前的链接。而不是保存一下链接,可以不断的使用。这种动态可以是一次性的,也可以是时段性的。

      对于资源S,如果有用户请求,那么首先按照时间、用户、IP等变量通过一个函数F,例如MD5、SHA1等哈希函数生成一个唯一标示符的地址,提供给用户。并且服务器将该标示符、时间、用户、IP、实际地址等关系,存储在数据库中。用户使用这个标示符,向服务器下载资源。服务器利用该标示符查找资源的实际地址和时间戳,如果没有过期,那么就将实际资源地址映射到该临时地址上,那么用户就可以下载或者建立连接了。如果该标示不存在或者过期,那么用户就无法下载该资源,必须重新获取新的临时标示地址。

      这其中有三个地址相互映射,页面地址->资源临时地址->资源实际地址。用户要获取实际地址,必须从首页(后者从某一个子类首页)开始,一步步最终才能获得实际资源。

      这对于防盗链有一定效果。例如B站企图盗链A站,那么它如果企图盗链,那么相对而言比较困难。甚至需要为此做专门的程序模拟实际操作。