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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
实用函数8
Nov 08 PHP
轻松修复Discuz!数据库
May 03 PHP
PHP Undefined index报错的修复方法
Jul 17 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
解析如何去掉CodeIgniter URL中的index.php
Jun 25 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
php实现建立多层级目录的方法
Jul 19 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
PHP正则表达式函数preg_replace用法实例分析
Jun 04 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
php多线程并发实现方法
2016/09/30 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
javascript简单实现表格行间隔显示颜色并高亮显示
2013/11/29 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
js实现内置计时器
2019/12/16 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
Django 返回json数据的实现示例
2020/03/05 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
安卓程序员求职信
2014/02/28 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
幼儿园辞职信
2015/05/13 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
Python基础之hashlib模块详解
2021/05/06 Python