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代码
Jul 14 PHP
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php读取csv实现csv文件下载功能
Dec 18 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
YII实现分页的方法
Jul 09 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
PHP PDOStatement::setAttribute讲解
Feb 01 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
使用Xdebug调试和优化PHP程序之[1]
2007/04/17 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
javascript高级学习笔记整理
2011/08/14 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
python 类之间的参数传递方式
2019/12/20 Python
python实现的分层随机抽样案例
2020/02/25 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
会计应聘求职信范文
2013/12/17 职场文书
应届专科生个人的自我评价
2014/01/05 职场文书
中秋节慰问信
2015/02/15 职场文书
民事辩护词范文
2015/05/21 职场文书
2016年猴年新春致辞
2015/08/01 职场文书
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js