PHP重点知识复习 – 高并发之防盗链

一、什么是防盗链

1.盗链概念

盗链是指在自己的页面上展示一些并不在自己服务器的内容

获取他人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。

常见的是小站盗用大站的图片、音乐、视频、软件等资源

通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器

2.防盗链概念

防止别人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源链接失效。

可以大大减轻服务器及带宽的压力

二、防盗链的工作原理

工作原理

通过Referer或签名,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。

一旦检测到来源不是本站即进行阻止或者返回指定的页面

通过计算签名的方式,判断请求是否合法,如果合法则显示,否则返回错误信息。

Referer

Nginx 模块 ngx_http_referer_module 用于阻拦来源非法的域名请求

Nginx指令 valid_referers,全局变量$invalid_referer

valid_referers none | blocked | server_names | string ...;

none: "Referer"来源头部为空的情况

blocked: "Referer"来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https//开头

server_names: "Referer"来源头部包含当前的server_names

以下是nginx的配置实例

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|PNG|JPG|JPEG|GIF)$
{
  valid_referers none blocked yanxisheji.com *.yanxisheji.com;
  if ($invalid_referer)
  {
   return 403;
  }
}

伪造Referer

可以使用加密签名解决

 

 

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇