php 实现防盗链,PHP如何实现防盗链详解
本文主要和大家介绍PHP实现防盗链的方法,结合实例形式分析了php防盗链所涉及的相关技术与具体实现技巧,需要的朋友可以参考下,希望能帮助到大家。
$_SERVER['HTTP_REFERER']的获取情况
注意 $_SERVER['HTTP_REFERER'] 并不一定总能获取到,只有在以下情况下才能获取到:
一、能够取到HTTP_REFERER的情况为以下几种:
1.直接用
2.用Submit或提交的表单(POST or GET)
3.使用Jscript提交的表单(POST or GET)
二、不能取到的情况有以下几种:
1.从收藏夹链接
2.单击”主页”或者自定义的地址
3.利用Jscript的location.href or location.replace()
4.在浏览器直接输入地址
5.
6.或转向
7.用XML加载地址
strrpos函数讲解:
strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
说明
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )返回字符串 $haystack 中 needle 最后一次出现的数字位置。$haystack在此字符串中进行查找。
$needle如果 needle不是一个字符串,它将被转换为整型并被视为字符的顺序值。
返回值
返回 needle 存在的位置。如果没有找到,返回 FALSE。
盗链判断代码:asd.php
//防盗链技术
//先判断是否获取到 $_SERVER['HTTP_REFERER'] 变量
if(isset($_SERVER['HTTP_REFERER'])){
//判断$_SERVER['HTTP_REFERER']是不是以http://localhost/开始的
if(strpos($_SERVER['HTTP_REFERER'],"http://localhost")==0){
echo '';
}
else{
header("Location:warning.php");//跳转页面到warning.php
//echo $_SERVER["HTTP_REFERER"];
}
}
else {
header("Location:warning.php");
}
?>
warning.php
倒链
防盗链验证代码
Insert title here
验证防盗链
上面是理解原理
一般通过配置服务器防盗链,如nginx配置访问
(gif|jpg|jpeg|png|bmp|swf)等文件的白名单
具体配置可百度搜索
相关推荐:
php 实现防盗链,PHP如何实现防盗链详解相关推荐
- 【区块链开发入门】(四) Truffle详解篇2
由于本篇篇幅较长,因此转为两篇文章.Truffle详解篇篇1请见:link 目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三 ...
- 区块链技术之Fabric逻辑架构详解
一.架构图 该图出自区块链技术指南一书,架构解释也主要出自于本书,有兴趣的同学可以去自行找一找资源. 如图所示:fabric的底层主要由四种服务构成,分别是:身份服务.策略服务.区块链服务.智能合约服 ...
- 区块链服务网络(BSN)技术详解
主讲人:何亦凡 各位领导.各位来宾,下午好! 首先,我想感谢国家信息中心让我们有幸参与了一个这么有意义的国家项目.在过去的一年多里,我们六家发起单位的技术团队一起奋斗,经过艰辛的研究和开发,终于让区块 ...
- java责任链模式审批请假_Java使用责任链模式处理学生请假问题详解
本文实例讲述了Java使用责任链模式处理学生请假问题.分享给大家供大家参考,具体如下: 一. 模式定义 在责任链模式中,很多对象由每一个对象对其下家的引用而连接起来,形成一条链.客户端应用请求在这个链 ...
- 区块链开源实现hyperledger fabric架构详解
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链 ...
- python跳舞的线_舞蹈链(Dance Link X)算法详解及python实现
这两天打算做个数独玩玩,查了一下解数独最好的算法叫舞蹈链:Dance Link X 该算法主要是解决精确覆盖问题:比如有个集合X,以及其若干子集的集合Y,要求出一个Y的子集Y*,能够恰好分割X. 举个 ...
- 前向星和链式前向星(详解+模板)
前向星和链式前向星 参考博客:深度理解链式前向星 什么是前向星 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的 ...
- 7-1 矩阵链相乘问题 (20 分)(思路+详解+题目解析) 动态规划做法
一:题目: 输入样例: 在这里给出一组输入.例如: 5 30 35 15 5 10 20 输出样例: 在这里给出相应的输出.例如: 11875 二:基本解析 1.基本的动态规划知识: 1):求解过程是 ...
- EOS区块链和以太坊区块链那个更好?
显然,你已经听说过两个最受欢迎的智能合约区块链,但想知道EOS与以太坊之中哪个更好?或许你想比较一下两种技术?好吧,你来对了地方,因为我要告诉你你需要知道的一切! 在这个EOS vs Ethereum ...
- 区块链开发语言python_区块链开发中使用的最流行的编程语言
我们目前正处于一个新兴的区块链开发行业中.区块链技术处于初期阶段,然而这种颠覆性技术已经成功地风靡全球,并且最近经历了一场与众不同的繁荣.由于许多资金充足的项目现在急于建立区块链网络并在其上部署分散的 ...
最新文章
- Js touchg事件在移动端网页中左右滑动效果
- JavaEE配置工具
- (回文串)Manacher算法
- 2016年1月20日总结
- Unity3D基础15:触发器
- leetcode-3-Longest Substring Without Repeating Characters
- Linux终端配色和Xshell命令行配色
- Oracle多层ifend嵌套,Excel IF函数以及IF多层嵌套如何使用,看完你就知道了
- 微信端跳到外部浏览器进行apk文件下载
- 基于微信小程序的兼职发布接单系统
- SSLOJ 1459.空间简单度【扫描线】【线段树】
- android打包时出现***is not translated in zh-rCN (Chinese: China)
- Freemarker语法2
- emplace、emplace_back等
- 史上最全的标题党标题
- microbit和python_Microbit MicroPython 介绍
- Java代码实现双色球小游戏2.0:完整代码(待完善)
- The role of Roles
- 3d模型 vv5_论SUV的自我修养,WEY VV5凭360度高清全景影像称霸同级!
- vscode中对flake8(python静态代码检查工具)和yapf(python代码格式化工具)的设置
热门文章
- QT 多线程 使用UI
- error C2668: ‘abs‘ : ambiguous call to overloaded function
- 【深度策略研究文章】《浅析金融帝国实验室(Capitalism Lab)中工资率的影响》(作者:jiuliumuliao)(1-2)
- 从零开始学Python数据分析-罗攀-专题视频课程
- 、阿里矢量图标(字体图标)
- 〖Python零基础入门篇㊱〗- 装饰器与类的装饰器
- Oracle分组后取每组第一条
- 树莓派4的WiFi设置
- 2022淘宝618超级喵运会玩法攻略 618超级喵运会玩法技巧
- JSP的scriptlet