PHP Nginx Secure Link 和 M3U8 防盗代码:保护视频文件和播放列表
以下是一个示例的 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;
}
注意:
-
在 PHP 代码中,
$key变量应该是一个随机字符串,用于保护您的 secure_link。请确保不要将其泄露给他人。 -
在 Nginx 配置中,
secure_link_key指令中的密钥应该与 PHP 代码中的$key变量相同。 -
在 Nginx 配置中,
secure_link_expires指令中的过期时间应该与 PHP 代码中的$expires变量相同。 -
在 Nginx 配置中,
allow指令中的 IP 地址应该是允许访问视频文件和播放列表的 IP 地址范围。请根据您的实际情况进行修改。
原文地址: https://www.cveoy.top/t/topic/onLO 著作权归作者所有。请勿转载和采集!