05 referer头与防盗链

像上图中的这个效果,当我们在网页里引用站外图片时,常出现这样的情况.
??? 服务器是怎么样知道,这个图片是在站外被引用的呢?
还有在网站的统计结果,统计用户从何而来,如下图
??? 统计时,是如何得知用户从哪儿来到的本网站呢?
在Http协议中,头信息里,有一个重要的选项: Referer
Referer: 代表网页的来源,即上一页的地址
如果是直接在浏览器上输入地址,回来进来,则没有Referer头.
这也是: 为什么服务器知道我们的图片是从哪儿引用的,也知道我们的客户从哪个网站链接点击过来的.
问题: 如何配置apache服务器,用于图片防盗链?
原理: 在web服务器层面,根据http协议的referer头信息,来判断.
如果来自站外,则统一重写到一个很小的防盗链提醒图片上去.
具体步骤:
1:打开apache 重写模块 mod_rewrite
前面的”#”去掉,并重启apache
2:在需要防盗的网站或目录,写.htaccess文件,
并指定防盗链规则
如何指定?
自然是分析referer信息,如果不是来自本站,是重写
重写规则:
哪种情况重写:
是jpeg/jpg/gif/png图片时
是referer头与localhost不匹配时
重写
怎么重写?
统一 rewirte到 某个防盗链图片
如下面的例子:[ 新建一个 .htaccess文件 写到php程序的目录中]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule .* http://www.zixue.it/static/image/common/zixuelogo.png
05 referer头与防盗链的更多相关文章
- HTTP 笔记与总结(6)referer 头与防盗链
在百度贴吧(或 QQ 空间等)中找到一张图片,复制图片地址,在站外通过 img src 引用,会发现: 此外,在一些统计软件中,统计访客的来路(直接访问.外部链接.搜索引擎),都用到了 HTTP 协议 ...
- http请求之referer头与防盗链
在网页中的占用大流量的信息可以写成这个信息在网络上的url位置,这样就会减少本网站的流量,但是其他网站也 不会随意让你使用人家的资源,因为这样的情对人家的网站没有好处,会增加人家网站的流量,所以要防止 ...
- javaweb之request获取referer请求头实现防盗链
package test.request; import java.io.IOException; import javax.servlet.ServletException; import java ...
- 通过Referer设置来防盗链
在Servlet中需要设置防盗链功能时可以通过以下代码: String referer = request.getHeader("Referer"); if(referer == ...
- [php]referer应用--http防盗链技术
1.防盗链的理解 所谓防盗链是防止其他的网站引用自己网站的资源连接,比如图片.视频等等,但是并不会阻碍从自己网站上享受资源的用户,这就要求能够将其他网站的连接请求阻止 2.防盗链的原理 其实从自己网站 ...
- php通过判断来源主机头进行防盗链
check.php <html> <body> <form action="test.php" method="post"> ...
- Nginx对图片进行防盗链
这里需要使用两台Linux主机(一台充当防盗链服务器,一台充当盗链服务器),下表是它们所使用的操作系统以及IP地址. 两台Linux主机所使用的操作系统以及IP地址 主机名称 操作系统 IP地址 防盗 ...
- apache 防盗链
方法1:Apache防盗链的第一种实现方法,可以用rewrite实现 (1.)首先要确认Apache的rewrite module可用,打开 httpd.conf 文件,如果前面有注释去掉 LoadM ...
- 11.25-11.27 配置防盗链,访问控制(Directory,FilesMatch)
4月17日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 扩展 几种限制ip的方法 http://ask.apelearn.com/qu ...
随机推荐
- 关于scarpy的一些说明
一 scrapy添加代理 1 内置代理:os.environ. 固定格式,不推荐 os.environ['http_proxy'] = "http://root:woshiniba@192 ...
- 怎样抓获或忽略像control-C这样的键盘中断?
基本步骤是调用signal():#include <signal.h>singal(SIGINT, SIG_IGN); 就可以忽略中断信号, 或者:extern void func(int ...
- 【NOIP2016练习】T3 tree (树形DP)
题意:一棵有N个结点的树,每个节点上有权值c[i] 需要选出若干结点,对于任意结点他的所有祖先都被选取且选取总个数不能超过lim 在此前提下使权值和最大 n,lim<=3000 思路:WA了1次 ...
- ie下table无法设置宽度的坑,解决方案:在td里面添加div把td宽度撑开即可。
<td><div style="width:180px"> <a data-b="2" class="btn btn-s ...
- JavaScript基础深入之----参数传递的分析与总结
JS的数值类型是分为两类:基本数据类型和引用数据类型. 基本类型占据的内存栈空间,引用类型被保存在堆空间.引用类型赋值的变量也是被保存在栈空间的,它的作用类似于电视遥控器,负责操作堆空间内指向的对象. ...
- PHP文件函数
PHP文件函数 函数 描述 PHPbasename() 返回路径中的文件名部分. 3chgrp() 改变文件组. 3chmod() 改变文件模式. 3chown() 改变文件所有者. 3clearst ...
- AC日记——【模板】线段树 1 洛谷 P3372
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个 ...
- 公共返回JSON信息的方法
java代码: public void returnMessage(HttpServletResponse response, Object str){ PrintWriter write = nul ...
- HttpClient的Post请求数据
最近在项目中需要添加Post请求数据,以前的Get请求是使用JDK自带的URLConnection.在项目组人员的推荐下,开始使用HttpClient. HttpClient简介: HttpClien ...
- Maven的POM简单理解
以下引用自官方的POM介绍https://maven.apache.org/guides/introduction/introduction-to-the-pom.html: 一.什么是POM? 项目 ...