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 相关文章推荐
用PHP的ob_start();控制您的浏览器cache!
Nov 25 PHP
PHP下几种删除目录的方法总结
Aug 19 PHP
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
php5 apache 2.2 webservice 创建与配置(java)
Jan 27 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
php图片缩放实现方法
Feb 20 PHP
php通过字符串调用函数示例
Mar 02 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
对laravel的session获取与存取方法详解
Oct 08 PHP
laravel框架与其他框架的详细对比
Oct 23 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
dedecms模版制作使用方法
2007/04/03 PHP
php adodb连接mssql解决乱码问题
2009/06/12 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
jQuery 选择器详解
2015/01/19 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
2017/11/14 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
python psutil库安装教程
2018/03/19 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
python 基于wx实现音乐播放
2020/11/24 Python
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
C#笔试题集合
2013/06/21 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
浪费资源的建议书
2014/03/12 职场文书
倡议书格式
2014/08/30 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
单位推荐信范文
2015/03/27 职场文书
热爱劳动主题班会
2015/08/14 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS