php简单防盗链实现方法

下面是详细讲解PHP简单防盗链实现方法的攻略:

什么是防盗链

防盗链是指在网站运营过程中,因为其他站点未经允许地使用了网站的图片、视频、音频等内容或者链接,直接调用了相关资源而占用了网站服务器带宽和资源,导致网站性能下降或者出现其他问题。为了解决这一问题,网站可以通过一定技术手段,对盗链行为进行识别并拒绝服务。

PHP简单防盗链实现方法

第一步:获取请求头referer信息

referer是一个HTTP头部字段,指示了产生了该请求的源URI。可以通过PHP中的$_SERVER['HTTP_REFERER']获取该信息。

示例代码:

$referer = $_SERVER['HTTP_REFERER'];

第二步:判断referer信息是否符合规则

针对盗链情况,可以设定一定规则,比如只允许某些站点调用资源,或者在某些情况下允许所有站点调用。通过判断referer是否符合规则,来确认是否允许访问。

示例代码:

// 允许所有来源站点
$allow = array();

if (empty($referer)) {
    // 没有referer,判定为不合法
    die('不合法请求');
}

$parse_url = parse_url($referer);
if (!isset($parse_url['host'])) {
    // 解析不出host,判定为不合法
    die('不合法请求');
}

$host = $parse_url['host'];
if (!in_array($host, $allow)) {
    // 不在允许的站点列表中,判定为不合法
    die('不合法请求');
}

第三步:返回资源

如果通过判断,referer信息符合规则,就可以返回相应资源了。将资源输出到浏览器即可。

示例代码:

// 输出图片
header("Content-type: image/jpeg");
readfile('/path/to/image.jpg');

// 输出视频
header("Content-Type: video/mp4");
readfile('/path/to/video.mp4');

示例说明

示例一:只允许特定站点调用图片资源

假设网站仅允许https://example.com站点调用图片资源。则可以将$allow的值设置为['example.com']。

$allow = array('example.com');

$referer = $_SERVER['HTTP_REFERER'];
if (empty($referer)) {
    // 没有referer,判定为不合法
    die('不合法请求');
}

$parse_url = parse_url($referer);
if (!isset($parse_url['host'])) {
    // 解析不出host,判定为不合法
    die('不合法请求');
}

$host = $parse_url['host'];
if (!in_array($host, $allow)) {
    // 不在允许的站点列表中,判定为不合法
    die('不合法请求');
}

// 输出图片
header("Content-type: image/jpeg");
readfile('/path/to/image.jpg');

示例二:允许所有站点调用视频资源

假设网站允许所有站点调用视频资源。则可以将$allow的值设置为空数组。

$allow = array();

$referer = $_SERVER['HTTP_REFERER'];
if (empty($referer)) {
    // 没有referer,判定为不合法
    die('不合法请求');
}

$parse_url = parse_url($referer);
if (!isset($parse_url['host'])) {
    // 解析不出host,判定为不合法
    die('不合法请求');
}

$host = $parse_url['host'];
if (!in_array($host, $allow)) {
    // 不在允许的站点列表中,判定为不合法
    die('不合法请求');
}

// 输出视频
header("Content-Type: video/mp4");
readfile('/path/to/video.mp4');

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php简单防盗链实现方法 - Python技术站

(0)
上一篇 2天前
下一篇 2天前

相关文章

  • PHP引用(&)各种使用方法实例详解

    PHP引用(&)各种使用方法实例详解 在PHP中,引用是一个很强大的特性。引用可以让我们在不复制原始值的情况下,对变量进行操作。本篇攻略将详细讲解PHP引用(&)的各种使用方法。 变量引用 在PHP中,通过&符号可以将一个变量设置为另一个的引用。这意味着,两个变量实际上引用了相同的值,甚至在其中任何一个被修改时,另一个都会发生变化。 …

    PHP 5天前
    00
  • php实现ping

    如何使用PHP实现Ping的完整攻略 Ping网络工具通常用于测试主机之间的连通性,以及测量网络端到端的延迟和带宽。在PHP中,我们可以使用exec()函数来调用系统的ping命令,并解析输出结果。下面是一个完整的实现Ping的攻略。 1. 使用exec()函数调用ping命令 我们可以在PHP中使用exec()函数来执行ping命令。例如,使用以下代码调用…

    PHP 5天前
    00
  • PHP输出控制功能在简繁体转换中的应用

    概述 PHP是一种非常流行的服务器端脚本语言,具有强大的输出控制功能,包括gzip压缩、页面缓存、简繁体转换等。在中文网站开发中,简繁体转换是一种常见的需求。本攻略将详细介绍PHP输出控制功能在简繁体转换中的应用。 安装PHP的mbstring扩展 在PHP中进行简繁体转换需要使用mbstring扩展。如果您的PHP没有安装该扩展,请参考以下步骤安装: 步骤…

    PHP 3天前
    00
  • php 输出双引号”与单引号’的方法

    当使用PHP时,我们常常需要在HTML中嵌入字符串,以便将变量或其他动态内容显示到用户界面上。在这种情况下,我们需要使用PHP的输出功能。双引号和单引号是两种常用的字符串格式,可以根据具体使用场景选择不同的输出方法。 输出双引号 如果字符串中包含变量或特殊字符,应使用双引号来输出字符串。双引号允许我们使用变量插入和转义序列,而单引号则不允许。以下两个示例演示…

    PHP 3天前
    00
  • PHP实现采集中国天气网未来7天天气

    实现采集中国天气网未来7天天气需要经过以下步骤: 1. 安装和配置开发环境 要实现采集中国天气网的数据,需要安装并配置好PHP开发环境。以Windows平台为例,可以在官网 https://windows.php.net/download/ 下载Windows版本的PHP安装包并安装,然后配置好环境变量。 2. 利用PHP的cURL库获取中国天气网的网页内容…

    PHP 5天前
    00
  • PHP数据集构建JSON格式及新数组的方法

    当使用PHP开发Web应用程序时,数据集的构建是非常重要的一环。JSON(JavaScript对象表示法)是一个用于数据交换的轻量级格式,因此构建JSON格式的数据集,能够实现Web应用中客户端和服务端之间的无缝数据交互。以下是一些用PHP构建JSON格式数据集和新数组的示例。 构建JSON格式数据集 1. 使用原生PHP函数 PHP提供了一些原生函数用于操…

    PHP 3天前
    00
  • php 特殊字符处理函数

    1. PHP 特殊字符处理函数概述 在 PHP 中,特殊字符处理函数用于对字符串进行处理,转义或者删除非法字符。这些函数通常用于处理用户输入或从数据库中提取的文本。以下是 PHP 中常用的特殊字符处理函数: htmlentities() 函数:将字符串中的特殊字符转换为 HTML 实体,避免特殊字符被解释为 HTML 标签或 JavaScript 代码等; …

    PHP 3天前
    00
  • php中简单的对称加密算法实现

    下面是php中简单的对称加密算法实现的完整攻略。 什么是对称加密算法 对称加密算法主要是指加密和解密过程使用的密钥是相同的一种加密算法。以AES加密算法为例,假设我们想要将一个数据加密处理,我们需要一个密钥,该密钥用于加密数据和解密数据,在加密数据的时候使用该密钥进行加密,而在解密的时候,同样需要使用该密钥进行解密。由于加密和解密需要使用相同的密钥,因此也被…

    PHP 2天前
    00
  • PHP学习笔记(一) 简单了解PHP

    PHP学习笔记(一) 简单了解PHP 简介 PHP是一种开源的服务器端脚本语言,常用于Web开发。它可以嵌入HTML中,使页面动态化。PHP被广泛应用于Drupal、WordPress、Magento等众多流行的开源软件。本篇笔记将简要介绍PHP的基本语法和常见应用。 安装与配置 要在本地电脑上运行PHP,需要安装Web服务器和PHP解释器。常用的Web服务…

    PHP 6天前
    00
  • php中常用编辑器推荐

    当编写PHP代码时,你需要一个文本编辑器来编写和保存代码。在选择文本编辑器时,很多因素需要考虑,例如功能、易用性、性能等等。在接下来的攻略中,我将向你介绍一些常用的PHP编辑器。 编辑器推荐 1. PhpStorm PhpStorm 是一款功能强大的 PHP 开发工具,它拥有很多有用的功能,例如代码自动完成、调试、测试、版本控制等等。此外,PhpStorm …

    PHP 6天前
    00