在Http协议中,头信息里,有一个重要的选项: Referer

Referer: 代表网页的来源,即上一页的地址

如果是直接在浏览器上输入地址,回来进来,则没有Referer头.

这也是: 为什么服务器知道我们的图片是从哪儿引用的,也知道我们的客户从哪个网站链接点击过来的.

问题: 如何配置apache服务器,用于图片防盗链?

原理: 在web服务器层面,根据http协议的referer头信息,来判断.

如果来自站外,则统一重写到一个很小的防盗链提醒图片上去.

具体步骤:

1:打开apache 重写模块 mod_rewrite

前面的”#”去掉,并重启apache

2:在需要防盗的网站或目录,写.htaccess文件,

并指定防盗链规则

如何指定?

自然是分析referer信息,如果不是来自本站,是重写

重写规则:

哪种情况重写:

是jpeg/jpg/gif/png图片时

是referer头与localhost不匹配时

重写

怎么重写?

统一 rewirte到 某个防盗链图片

如下面的例子:

RewriteEngine On

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

RewriteCond %{HTTP_REFERER} !localhost [NC]

RewriteRule .*  no.png

配置文件.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} .*\.(jpg|jpeg|gif|png) [NC] //表示什么条件下重写,是图片的条件下重写
RewriteCond %{HTTP_REFERER} !localhost [NC] //不是localhost访问时需要重写
RewriteRule .* no.png //重定向到图片no.png

img.html

<!DOCTYPE>
<html>
<head>
<title>图片防盗链技术</title>
<meat http-equive="Content-Type" content="text/html;charest=utf-8"/>
</head>
<img src="apple.jpg"/>
</html>

  

php防盗链技术的更多相关文章

  1. php笔记05:http协议中防盗链技术

    倘若我们自己在电脑上写了一个网站文件(可以是html,php文件等等),但是只希望本机可以访问这个文件,不希望别的电脑访问就需要这里的防盗链技术 1.我们在本地写了一个import.php文件: 而且 ...

  2. 防盗链技术终极解决方案(squid+cookie)

    防盗链技术现状:1.通过识别Referer确认请求来源页面2.Apache,squid等都能对Referer进行识别3.通过ActiveX显示的内容不向服务器提供Referer Header(例如,F ...

  3. php破解防盗链技术

    php破解防盗链技术 发送http请求 构造referer信息 在Http协议中,头信息里,有一个重要的选项: Referer Referer: 代表网页的来源,即上一页的地址 具体方法http.cl ...

  4. http协议以及防盗链技术

    http协议,又称为超文本传输协议,顾名思义,http协议不仅能传输文本,还能传输图片,视频,压缩包等文件,http协议是建立在tcp/ip协议的基础之上的,http协议对php程序员来讲可以说是重中 ...

  5. [php]referer应用--http防盗链技术

    1.防盗链的理解 所谓防盗链是防止其他的网站引用自己网站的资源连接,比如图片.视频等等,但是并不会阻碍从自己网站上享受资源的用户,这就要求能够将其他网站的连接请求阻止 2.防盗链的原理 其实从自己网站 ...

  6. JavaWeb学习记录(二)——防盗链技术

    public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSer ...

  7. Java防盗链机制

    对于防盗链技术,网上提供了很多很多的相关技术,但是不是特别复杂就是效果不好. 这里在网上找到一种思路,就是关于HTTP协议响应头中包含的Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可 ...

  8. Java破解图片防盗链

    前言 今天想下载几张好看的壁纸,然后发现了一张是自己比较喜欢的额.然后点进去看看,WOW!好多好看的壁纸呀,于是我就起了贪念.哈哈!想把他们这一组图片打包下载,小白的方法就是一张一张下载,那样对于我们 ...

  9. nginx——防盗链功能

    我们经常会看到在浏览某一图片时会弹出一“403权限禁止”错误,这说明有可能正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链技术.那么怎样才能不让自己的网站受害呢? 下面我来介 ...

随机推荐

  1. 轻松搞定RabbitMQ(二)——工作队列之消息分发机制

    转自 http://blog.csdn.net/xiaoxian8023/article/details/48681987 上一篇博文中简单介绍了一下RabbitMQ的基础知识,并写了一个经典语言入门 ...

  2. 宜信开源|分布式任务调度平台SIA-TASK的架构设计与运行流程

    一.分布式任务调度的背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.我们常常需要一些任务调度系统来帮助解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此背 ...

  3. WPF自定义Popup和弹出菜单

    Popup: <StackPanel Grid.Column="0" Grid.Row="6" Orientation="Horizontal& ...

  4. Cocos2d-x3.1FileUtilsTest使用

    Cocos2d-x3.1中FileUtils的使用:本使用教程是基于HelloWorld的.仅仅需在HelloWorld的init()函数中加入例如以下代码 //头文件 #include " ...

  5. javascript和c#的深度拷贝的一种通用方法

    很简单,序列化后反序列化...

  6. EasyDarwin开源云平台接入海康威视EasyCamera摄像机之快照获取与上传

    本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376 EasyCamera开源摄像机拥有获取摄像机实时快照并上传至EasyDarwin云平 ...

  7. Part of defining a topology is specifying for each bolt which streams it should receive as input

    http://storm.apache.org/ [doing for realtime processing what Hadoop did for batch processing ] Apach ...

  8. Oracle 11gR2 使用RMAN Duplicate复制数据库

    Oracle 11gR2 使用RMAN Duplicate复制数据库     前言:     上周刚做完一个项目,用户要求RAC的数据库可以自己主动备份到另外一个单节点上,单节点可以正常拿起来就能用. ...

  9. JVM client模式和Server模式

    我们把jdk安装完成后,在命名行输入java -version 不仅可以看到jdk版本相关信息,还会看到类似与 Java HotSpot(TM) 64-Bit Server VM (build 25. ...

  10. HDU 1829/POJ 2492 A Bug's Life

    A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...