这篇文章主要介绍了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中如何实现防盗链的示例相关推荐

  1. Ardor公链生态与Jelurida产业区块链布局

    Ardor公链 Ardor公链(ARDR)基于NXT公链,并于2018年1月1日推出了多链架构,旨在克服单链本质上的局限性.根据Ardor平台的白皮书,其主要目标是: 解决最终用户必须拥有作为手续费( ...

  2. 1分钟链圈 | 马化腾:大湾区可挖掘更多的区块链应用场景,比如区块链电子发票...

    Hi,艾瑞巴蒂! 这里是 9 月 6 日的每日1句话新闻晚报,只需1分钟,看看全球最热.最新的区块链新闻. 实时币价:BTC $6426.80    ETH $228.73    EOS $5.04( ...

  3. 区块链应用 | 泡沫之下的区块链

    过去两周,从广东中山到泰国曼谷.再到美国硅谷,基石投资人郭宏才在太平洋上飞出了一个大大的对勾,寻找国内外优质的区块链项目.硅谷电线杆上满眼的区块链信息,都刺激着这位中国知名的区块链投资人.他计划在20 ...

  4. 第一届区块链技术及应用峰会“区块链核心技术”分论坛预告大放送

    技术苍穹,迭代未休,区块链技术乘破竹之势而来,已然问鼎2018年技术圈开年"关键词Top榜".当爆炸式的知识需求,遇上业内资源捉襟见肘的困窘现状,区块链技术及应用峰会(BTA)·中 ...

  5. Javascript中闭包的作用域链

    作用域定义了在当前上下文中能够被访问到的成员,在Javascript中分为全局作用域和函数作用域,通过函数嵌套可以实现嵌套作用域. 闭包一般发生在嵌套作用域中.闭包是JavaScript最强大的特性之 ...

  6. MySQL buffer pool中的三种链

    三种page.三种list.LRU控制调优 一.innodb buffer pool中的三种页 1.free page:从未用过的页 2.clean page:干净的页,数据页的数据和磁盘一致 3.d ...

  7. 设计模式在Netty中的应用-责任链模式源码举例

    责任链:是指多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系.然后,将这些对象连成一条链,并且沿着这条链往下传递请求,直到有一个对象可以处理它为止.在每个对象处理过程中,每个 ...

  8. php判断外链,php检查字符串中是否有外链的方法

    这篇文章主要介绍了php检查字符串中是否有外链的方法,涉及php针对字符串的正则匹配的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php检查字符串中是否有外链的方法.分享给大家 ...

  9. IOS中的事件响应链,事件冒泡机制基本了解

    本文主要讲解IOS中事件响应链,即事件冒泡机制.做过web开发的同学应该知道js事件冒泡是从主响应元素一层一层的向父级冒泡事件,在ios亦是如此,但是不同是ios中,如果冒泡链中有一方对事件进行响应处 ...

最新文章

  1. php 简单的存在 (方法之间的神奇作用:容错)
  2. php中var_dump()函数
  3. matlab padarray函数详解
  4. oracle删除本地文件权限,使用 UNIX 权限保护文件
  5. isatty_带有示例的Python File isatty()方法
  6. 前端学习(1156):let var const的区别
  7. js设置全局变量ajax中赋值
  8. gta5显示nat较为严格_为何严格治理下雾霾天仍频发?哈尔滨市环保局解答重污染天3大疑问...
  9. 【精彩实况】第三届大数据科学与工程国际会议
  10. vue.js2.0 java_详解vite2.0配置学习(typescript版本)
  11. 【原】jQuery easyUI 快速搭建前端框架
  12. 使用js切割URL的参数
  13. Yeah,我的Pygame安装成功了!(Windows Pygame 安装教程)
  14. 【课程·研】工程伦理学 | 课堂汇报:个性化推荐技术的伦理学——以平台广告精准投放事件为例
  15. echarts 折线图
  16. Schema for type Unit is not supported
  17. js将文件大小字节转换成B,KB,MB,GB,TB方法
  18. 香农编码的C++实现及求平均码长和编码效率
  19. 如何判断一个文件是否为PE文件
  20. Procreate闪闪的神仙笔刷合集,IPad绘画必备

热门文章

  1. “近一个月”、“近三个月”这种查询如何处理更精确?
  2. 登月源码登顶 GitHub Top1,37000 Star 致敬人类登月 50 周年!
  3. AI 时代,中国技术创新如何弯道超车?
  4. 人工智能为什么要从本科生抓起?
  5. 微信小游戏凭什么拿走开发者 70% 的日流水?
  6. Android 爆发病毒,华米 OV 均受影响;微信宣战百度搜索;抖音遭约谈 | CSDN极客头条...
  7. 僵尸 AI 来了,人类该怎么办?
  8. 什么情况下不应该使用深度学习?
  9. Android热修复更改图标,Android手写热修复(一)--ClassLoader
  10. 字节跳动高工面试:mysql索引视频教程