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 相关文章推荐
UCenter Home二次开发指南
May 28 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
基于php 随机数的深入理解
Jun 05 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
PHP常用编译参数中文说明
Sep 27 PHP
PHP开发注意事项总结
Feb 04 PHP
PHP中each与list用法分析
Jan 08 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
php面向对象程序设计中self与static的区别分析
May 21 PHP
thinkphp框架类库扩展操作示例
Nov 26 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中array_slice函数用法实例详解
2014/11/25 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
YUI的Tab切换实现代码
2010/04/11 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
2020/09/22 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
基于PyTorch中view的用法说明
2021/03/03 Python
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
幼儿园中秋节活动方案
2014/02/06 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
检讨书格式范文
2015/05/07 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js