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 相关文章推荐
用Flash图形化数据(二)
Oct 09 PHP
PHP 选项及相关信息函数库
Dec 04 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php无序树实现方法
Jul 28 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
PHP信号量基本用法实例详解
Feb 12 PHP
php分页原理 分页代码 分页类制作教程
Sep 23 PHP
注释PHP和html混合代码的小技巧(分享)
Nov 03 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP绕过open_basedir限制操作文件的方法
Jun 10 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 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
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
php中使用websocket详解
2016/09/23 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
JavaScript 语言的递归编程
2010/05/18 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python学习笔记:字典的使用示例详解
2014/06/13 Python
python实现折半查找和归并排序算法
2017/04/14 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python开发的实用计算器完整实例
2017/05/10 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
Python工厂函数用法实例分析
2018/05/14 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
《蓝色的树叶》教学反思
2014/02/24 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python