以下是一个示例的 PHP + Nginx secure_link 和 m3u8 防盗代码,可以用于保护您的视频文件和播放列表(.m3u8):

PHP 代码:

$key = 'mysecretkey'; // 替换为您自己的密钥
$expires = time() + 3600; // 过期时间为当前时间加上 1 小时

$uri = '/path/to/video.mp4'; // 替换为您自己的视频文件路径
$hash = md5("$expires$uri$key"); // 计算哈希值

$url = 'https://example.com$path/to/video.mp4?md5=$hash&expires=$expires'; // 替换为您自己的视频文件 URL

// 生成播放列表 URL
$playlist = '/path/to/playlist.m3u8'; // 替换为您自己的播放列表路径
$hash = md5("$expires$playlist$key");
$playlist_url = 'https://example.com$path/to/playlist.m3u8?md5=$hash&expires=$expires';

Nginx 配置:

location /path/to/ {
    # 启用 secure_link 模块
    secure_link $arg_md5,$arg_expires;

    # 设置 secure_link 的密钥
    secure_link_key 'mysecretkey';

    # 设置 secure_link 的过期时间
    secure_link_expires 1h;

    # 允许接受的请求方式
    if ($request_method !~ ^(GET|HEAD)$ ) {
        return 405;
    }

    # 验证 secure_link
    if ($secure_link = '') {
        return 403;
    }

    # 验证 secure_link 的哈希值
    if ($secure_link != $arg_md5) {
        return 403;
    }

    # 验证 secure_link 的过期时间
    if ($arg_expires < time) {
        return 403;
    }

    # 允许访问的 IP 地址
    allow 192.168.0.0/24;
    deny all;

    # 提供视频文件和播放列表
    try_files $uri $uri/index.m3u8;
}

注意:

  1. 在 PHP 代码中,$key 变量应该是一个随机字符串,用于保护您的 secure_link。请确保不要将其泄露给他人。

  2. 在 Nginx 配置中,secure_link_key 指令中的密钥应该与 PHP 代码中的 $key 变量相同。

  3. 在 Nginx 配置中,secure_link_expires 指令中的过期时间应该与 PHP 代码中的 $expires 变量相同。

  4. 在 Nginx 配置中,allow 指令中的 IP 地址应该是允许访问视频文件和播放列表的 IP 地址范围。请根据您的实际情况进行修改。

PHP Nginx Secure Link 和 M3U8 防盗代码:保护视频文件和播放列表

原文地址: https://www.cveoy.top/t/topic/onLO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录