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 array的学习笔记
May 16 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
php截取html字符串及自动补全html标签的方法
Jan 15 PHP
php准确计算复活节日期的方法
Apr 18 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 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的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
JS 判断代码全收集
2009/04/28 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
three.js利用卷积法如何实现物体描边效果
2019/11/27 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
Python3中的bytes和str类型详解
2019/05/02 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
为什么需要版本控制?
2013/08/08 面试题
应届生骨科医生求职信
2013/10/31 职场文书
人力资源管理毕业生自荐信
2013/11/21 职场文书
大学生村官心得体会范文
2014/01/04 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
病危通知书样本
2015/04/17 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
开学典礼校长致辞
2015/07/29 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
javascript对象3个属性特征
2021/11/17 Javascript