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或asp创建网页桌面快捷方式的代码
Mar 23 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
PHP中构造函数和析构函数解析
Oct 10 PHP
php运行时动态创建函数的方法
Mar 16 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
详谈PHP面向对象中常用的关键字和魔术方法
Feb 04 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 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获得当前的脚本网址
2007/12/10 PHP
php中变量及部分适用方法
2008/03/27 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
JS处理VBArray的函数使用说明
2008/05/11 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
学习React中ref的两个demo示例
2018/08/14 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
详解Django中的过滤器
2015/07/16 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
行风评议整改报告
2014/11/06 职场文书
一年级小学生评语大全
2014/12/25 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python
vue中div禁止点击事件的实现
2022/04/02 Vue.js
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers