防盗链

盗链

盗链:盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

例如:在浏览器的URL栏中输入https://p.qpic.cn/music_cover/JBDCVgqXWXaYUvcsElqcicZMXwZytGNh8kNBGQ8jB7p7GVxic7KLx4Cw/300?n=1,如图所示:

在本地运行如下代码:

<img src="https://p.qpic.cn/music_cover/JBDCVgqXWXaYUvcsElqcicZMXwZytGNh8kNBGQ8jB7p7GVxic7KLx4Cw/300?n=1">

运行结果如图所示:

这就是盗链

防盗链

防盗链:顾名思义就是防止盗链。

原理:HTTP头里面有个referer头信息,在web 服务器通过referer的来源来判断是否展示资源

referer代表网页的来源或者上一个网页的地址

如果直接输入则没有refer信息头

 例如:直接在网站输入http://a2.qpic.cn/psb?/V10cYiB727NIv6/ryytA2I6sVSDYPR1BY6921*C7GZ*dm8fHX*zuxo2X1A!/b/dIUBAAAAAAAA&ek=1&kp=1&pt=0&bo=OAQ4BDgEOAQBACc!&vuin=2426609750&tm=1525233600&sce=60-4-3&rf=viewer_311

原来的图片


不管是输入浏览器地址栏还是运行代码都是这个运行结果


这就是防盗链的一种方法。

Apache防盗链

1.找到httpd.conf中的LoadModule socache_shmcb_module modules/mod_socache_shmcb.so,去掉前面的”#“ 符号

2.在网站目录中新建.htaccess文件写入如下内容

 

<IfModule mod_rewrite.c>

 //重写规则生效

 RewriteEngine On

  //只是在该目录下生效  

RewriteBase /img

  //对以下格式的文件进行重写规则

   RewriteCond %{REQUEST_FILENAME}.*\.(jpg|jpeg|gif|png) [NC]

  //如果不是来自139.199.20.195的用户,会重写

 RewriteCond %{HTTP_REFERER} !139.199.20.195 [NC]

  //重写规则

  RewriteRule .*https://pic1.zhimg.com/80/v2-721c133aca3699e0426aef67ab5a609f_hd.jpg

 // RewriteRule.* ./no.jpg   本地图片访问不了什么原因

  </IfModule>

 

3.新建代码文件1.php输入如下内容

<img src="./img/1.jpg">

4.在浏览器中输入url

 

R 就是转向的意思

NC 指的是不区分大小写


L 的作用是指明本次转向到此结束,后续的转向不受先前判断语句的影响

 

原因:这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号

Nginx防盗链:

1.    配置好lnmp环境,这是原图

2.    修改nginx.conf文件

//白名单,允许文件链出的域名白名单,自行修改成您的域名
valid_referers none blocked 139.199.20.195;
if ($invalid_referer) {  //注意,这个if和(括号之间有空格,括号)和后面的{也有空格

rewrite ^/https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1525350349129&di=2e8675ac746f8a96496dba068b86bcd2&imgtype=0&src=http%3A%2F%2Fimgbdb3.bendibao.com%2Fbjbdb%2F201611%2F21%2F20161121154935_85682.jpg;

}

 

运行结果如图所示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值