php实现图片文件与下载文件防盗链的方法


Posted in PHP onNovember 03, 2014

本文实例讲述了php实现图片文件与下载文件防盗链的方法。分享给大家供大家参考。具体分析如下:

在php中最简单的防盗链办法就是利用php的$_SERVER['HTTP_REFERER']函数来操作了,但是此方法不可靠,我们最终还是需要使用apache,iis来进行操作的,具体的操作方法如下:

php防盗链:

<?php

session_start();

session_register('check');

$_SESSION['check']=true;

?>

检查session变数,判断是否造访首页。并且检查他的来源网页参考(HTTP_REFERER)是否来自本地网站的网页。

方法如下:

<?php

session_start();

$refs = parse_url($_SERVER['HTTP_REFERER']); //分解参考网页资讯

//检查首页session及来源主机是否相同

if(!($_SESSION['check']) || $refs['host'] != $_SERVER['HTTP_HOST'])

exit;

?>

注意:这个只能简单的防盗链了,如果稍懂一点的就可以破解了,

利用服务器来设置php防盗连

apache防盗链:

修改httpd.conf:

SetEnvIfNoCase Referer "^" local_ref=1 

<FilesMatch ".(gif|jpg)"> 

Order Allow,Deny 

Allow from env=local_ref 

</FilesMatch>

如果希望显示一张“禁止盗链”的图片,我们可以用mod_rewrite 来实现。
首先在安装 apache 时要加上 --enable-rewrite 参数加载 mod_rewrite 模组。
假设“禁止盗链”的图片为abc.gif,我们在 httpd.conf 中可以这样配置:

RewriteEngine on 

RewriteCond %{HTTP_REFERER} !^$ 

RewriteCond %{HTTP_REFERER} !^http://(www.)?3water.com /.*$ [NC] 

RewriteRule .(gif|jpg)$ abc.gif [R,L]

DocumentRoot "/usr/local/apache/htdocs" 

#设置存放站点html文件的目录。

<Directory /> 

Options FollowSymLinks 

AllowOverride None 

</Directory>

iis防盗链:

执行文件选择 c:RewriteRewrite.dll 即可以了
httpd.ini是配置文件
图片防盗链代码

[ISAPI_Rewrite] 

# 3600 = 1 hour 

CacheClockRate 3600 

RepeatLimit 32 

# Protect httpd.ini and httpd.parse.errors files 

# from accessing through HTTP 

RewriteCond Host: (.+) 

RewriteCond Referer: (?!http://1.*).* 

RewriteRule .*.(?:gif|jpg|png|bmp) /force.gif [I,O]

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
PHP的ASP防火墙
Oct 09 PHP
PHP的单引号和双引号 字符串效率
May 27 PHP
php不用内置函数对数组排序的两个算法代码
Feb 08 PHP
深入理解PHP之require/include顺序 推荐
Jan 02 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php中神奇的fastcgi_finish_request
May 02 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
Nov 17 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
php过滤表单提交的html等危险代码
Nov 03 #PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 #PHP
php中count获取多维数组长度的方法
Nov 03 #PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 #PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 #PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 #PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 #PHP
You might like
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
在vue 中使用 less的教程详解
2018/09/26 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
jQuery实现王者荣耀手风琴效果
2020/01/17 jQuery
Python ljust rjust center输出
2008/09/06 Python
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
详解Python中的__init__和__new__
2014/03/12 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Python Pandas 箱线图的实现
2019/07/23 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
python标记语句块使用方法总结
2019/08/05 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
教师自我鉴定范文
2013/11/10 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
个人借款协议书范本
2014/11/17 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
幼儿园六一主持词
2015/06/30 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL