PHP 防盗链是指通过服务器端脚本(如 PHP)来防止其他网站直接链接到你的网站资源(如图片、视频、文档等),从而保护你的网站资源不被滥用。
以下是一个基于签名的 PHP 防盗链示例:
<?php
// 设置允许访问的域名列表
$allowed_domains = ['example.com', 'www.example.com'];
// 获取请求的域名
$request_domain = $_SERVER['HTTP_HOST'];
// 检查请求的域名是否在允许列表中
if (!in_array($request_domain, $allowed_domains)) {
header('HTTP/1.0 403 Forbidden');
echo 'Forbidden';
exit;
}
// 生成签名
$secret_key = 'your_secret_key';
$file_path = '/path/to/your/resource.jpg';
$timestamp = time();
$signature = md5($secret_key . $file_path . $timestamp);
// 获取请求中的签名和时间戳
$request_signature = $_GET['signature'] ?? '';
$request_timestamp = $_GET['timestamp'] ?? '';
// 验证签名和时间戳
if ($request_signature === $signature && abs($request_timestamp - $timestamp) < 60) {
// 签名和时间戳验证通过,输出资源
header('Content-Type: image/jpeg');
readfile($file_path);
} else {
header('HTTP/1.0 403 Forbidden');
echo 'Forbidden';
}
?>
secret_key
和 file_path
没有泄露。X-Forwarded-For
头。通过以上方法,你可以有效地实现 PHP 防盗链,保护你的网站资源不被滥用。
领取专属 10元无门槛券
手把手带您无忧上云