针对需要设置防盗链的URI,
我们对请求进行检查,参数 hotlink=........,如果没有那个参数,我们就生成一个随机的串,然后返回302,让对方再拿一次。
如果有hotlink参数,则检查是否合法,如果合法,则正常访问。如果不合法则继续302。
配置为:
hot_link_protect on;
hot_link_param_id htid;
hot_link_param_retry htretry;
hot_link_retry 3;
hot_link_rule action=[allow|deny] uri_reg referer_reg
On 5月21日, 下午4时36分, Zou Yong <zou...@gmail.com> wrote:
> 这个方法对于文件下载不管用,一般的现在工具都会填referer头,对图片到可以防一防别的网页引用你的图片。
>
> 在09-5-21,deltay <delta....@gmail.com> 写道:
On 5月21日, 下午4时36分, Zou Yong <zou...@gmail.com> wrote:
> 这个方法对于文件下载不管用,一般的现在工具都会填referer头,对图片到可以防一防别的网页引用你的图片。
>
> 在09-5-21,deltay <delta....@gmail.com> 写道:
On 5月25日, 上午9时56分, Delta Yeh <delta....@gmail.com> wrote:
> 恩,我觉得放在COOKIE里可能比较好一点。因为放在URL里,需要宿主应用的网页生成那个时间戳,
> 既然大家都用nginx当服务器或反向代理,我想采用cookie的方式可能配置更方便一点。
>
> 这个模块对所有请求都设置一个COOKIE。
> 如果指定的资源请求没收到这个COOKIE,则认为是盗链,转到指定页面。
> 如果请求有这个COOKIE,则放行。
>
> 2009/5/25 Yorgo Sun <yorgo...@gmail.com>
>
>
>
>
>
> > 一般防盗链都和时间戳相关联,你访问的地址其中有一个参数是一个加密的时间戳,这个在你的宿主网页上计算出来并加密,用户点击访问时,这面的服务器负责解密并判-断是否时间超出了你预设的范围,如果超出则不允许访问,如果没有超出再拿到具体的内容并显示。
> > 这个加密时间戳有放在url里当做参数的,也有放在cookie里的,随你挑选。这应该是目前常用的最完善的一个防止盗链的方法了。
>
> > 2009/5/24 Delta Yeh <delta....@gmail.com>
>
> >> 那你觉得有啥好的途径么,我们一起讨论一下。
>
> >> 2009/5/24 坏人 <eel...@foxmail.com>
>
> >> 最不可靠的防盗链就是单纯基于referer的。迅雷对原始资源的伪造是基于url的,对镜像站点的伪造是后台记录正确的数据。而如果才后加个参数,那
> >>> 和Access Key Module有啥区别?
>
> > --
> > 孙绍轩 Yorgo Sun- 隐藏被引用文字 -
>
> - 显示引用的文字 -
On 5月26日, 下午9时18分, Delta Yeh <delta....@gmail.com> wrote:
> 这么说你已经开发了类似的模块了?
>
> 2009/5/26 坏人 <eel...@foxmail.com>
>
>
>
> > 最好带简单加密。我预计不久的将来,迅雷的p2sp部分可能会记录cookie,这样防盗链插件会立即失效
> > 当然加密不能复杂,我其中一个网站下载的请求是每秒100-1000次。一开始用md5根本吃不消,后来自己写了个模块才搞定
>
> > On 5月25日, 上午9时56分, Delta Yeh <delta....@gmail.com> wrote:
> > > 恩,我觉得放在COOKIE里可能比较好一点。因为放在URL里,需要宿主应用的网页生成那个时间戳,
> > > 既然大家都用nginx当服务器或反向代理,我想采用cookie的方式可能配置更方便一点。
>
> > > 这个模块对所有请求都设置一个COOKIE。
> > > 如果指定的资源请求没收到这个COOKIE,则认为是盗链,转到指定页面。
> > > 如果请求有这个COOKIE,则放行。
>
> > > 2009/5/25 Yorgo Sun <yorgo...@gmail.com>
>
> > 一般防盗链都和时间戳相关联,你访问的地址其中有一个参数是一个加密的时间戳,这个在你的宿主网页上计算出来并加密,用户点击访问时,这面的服务器负责解密并判--断是否时间超出了你预设的范围,如果超出则不允许访问,如果没有超出再拿到具体的内容并显示。
> > > > 这个加密时间戳有放在url里当做参数的,也有放在cookie里的,随你挑选。这应该是目前常用的最完善的一个防止盗链的方法了。
>
> > > > 2009/5/24 Delta Yeh <delta....@gmail.com>
>
> > > >> 那你觉得有啥好的途径么,我们一起讨论一下。
>
> > > >> 2009/5/24 坏人 <eel...@foxmail.com>
>
> > 最不可靠的防盗链就是单纯基于referer的。迅雷对原始资源的伪造是基于url的,对镜像站点的伪造是后台记录正确的数据。而如果才后加个参数,那
> > > >>> 和Access Key Module有啥区别?
>
> > > > --
> > > > 孙绍轩 Yorgo Sun- 隐藏被引用文字 -
>
> > > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
防盗链有几个办法
1、根据用户ip进行hash,以url传递参数或在cookie中也行。优点是防盗链彻底,缺点是中国和很多发展中国家的ip资源严重不足,adsl
的动态ip普遍,一旦断线就无法续传了。
2、时间戳。优点是超过期限无法下载,防盗链也彻底。缺点是谁能保证规定时间内能下完,尤其是超大文件不好估算时间的。另外如果在规定时间内迅雷记录了
此资源并且采用的是url传递,那任何人都可以下载了。
3、登录下载。优点也是封的彻底,缺点是不适合非会员制网站
4、我的办法。封我帐号还没找你算账呢,能分析出来我才服你。分析不出来我只能认为你是懂几句外语就狐假虎威以为中国没人才的类型。
说实话我英语4级只有28分,看英语文章除了介词助词其他大部分都不认识,见了鬼佬打招呼我只会三句hello. how are you.
good bye
On 5月26日, 下午9时23分, Delta Yeh <delta....@gmail.com> wrote:
> 可以简单说说你的设计思路么?当然,在你方便的前提下。
> 如果不方便就算了。
>
> 2009/5/26 坏人 <eel...@foxmail.com>
>
>
>
> > 哈,只是简单加密做成了模块,非常简单的,我花些时间口算都能解密
> > 防盗链部分一样用的是cookie,只是没有基于时间戳
>
> > On 5月26日, 下午9时18分, Delta Yeh <delta....@gmail.com> wrote:
> > > 这么说你已经开发了类似的模块了?
>
> > > 2009/5/26 坏人 <eel...@foxmail.com>
>
> > > > 最好带简单加密。我预计不久的将来,迅雷的p2sp部分可能会记录cookie,这样防盗链插件会立即失效
> > > > 当然加密不能复杂,我其中一个网站下载的请求是每秒100-1000次。一开始用md5根本吃不消,后来自己写了个模块才搞定
>
> > > > On 5月25日, 上午9时56分, Delta Yeh <delta....@gmail.com> wrote:
> > > > > 恩,我觉得放在COOKIE里可能比较好一点。因为放在URL里,需要宿主应用的网页生成那个时间戳,
> > > > > 既然大家都用nginx当服务器或反向代理,我想采用cookie的方式可能配置更方便一点。
>
> > > > > 这个模块对所有请求都设置一个COOKIE。
> > > > > 如果指定的资源请求没收到这个COOKIE,则认为是盗链,转到指定页面。
> > > > > 如果请求有这个COOKIE,则放行。
>
> > > > > 2009/5/25 Yorgo Sun <yorgo...@gmail.com>
>
> > 一般防盗链都和时间戳相关联,你访问的地址其中有一个参数是一个加密的时间戳,这个在你的宿主网页上计算出来并加密,用户点击访问时,这面的服务器负责解密并判---断是否时间超出了你预设的范围,如果超出则不允许访问,如果没有超出再拿到具体的内容并显示。