首页 > 编程语言 >如何用nginx配置防盗链

如何用nginx配置防盗链

来源:互联网 2026-07-29 14:15:03

通过Nginx配置防盗链,可限制指定域名和文件类型访问资源,防止盗用。高级方法包括签名验证与Token验证,提升安全性。需注意复杂逻辑会增加CPU开销,签名算法应加盐和时间戳防破解。

通过Nginx配置防盗链,说白了就是给资源加一把锁,让别人没法随便拿走你的图片、视频或文件。下面直接上干货,从基础到高级,一步步说清楚怎么配置。

1. 基本防盗链配置

1.1 允许特定域名访问

最简单的做法是只让某些域名能访问你的资源,其他域名一律拒绝。比如,你只希望自己的主站和子站能用,别人想直接引用,直接返回403。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

server {
    listen 80;
    server_name example.com;
    location /protected/ {
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
        # 其他配置,如袋里、缓存等
    }
}

1.2 允许特定文件类型

如果你只想保护图片、视频这类多媒体文件,可以按文件类型来限制。比如只允许图片(jpg、png、gif)和视频(mp4、a vi、mov)被特定域名引用,其他文件类型不受影响。

server {
    listen 80;
    server_name example.com;
    location ~* .(jpg|jpeg|png|gif|mp4|a vi|mov)$ {
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
        # 其他配置,如袋里、缓存等
    }
}

2. 高级防盗链配置

2.1 使用签名验证

如果referer策略不够用,可以上更严格的签名验证。思路是:你生成一个签名,请求时带上这个签名,服务器端校验。签名不对,直接拒绝。这样就算别人伪造了referer也绕不过去。

server {
    listen 80;
    server_name example.com;
    location /protected/ {
        set $signature "";
        if ($arg_signature != "") {
            set $signature $arg_signature;
        }
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
        # 验证签名
        if ($signature != "your_generated_signature") {
            return 403;
        }
        # 其他配置,如袋里、缓存等
    }
}

2.2 使用Token验证

Token验证跟签名类似,但更灵活——你可以给每个用户或每次请求生成不同的Token,过期作废。配置方法和签名差不多,但注意Token的生成逻辑要足够安全,不能让人轻易猜出来。

server {
    listen 80;
    server_name example.com;
    location /protected/ {
        set $token "";
        if ($arg_token != "") {
            set $token $arg_token;
        }
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
        # 验证Token
        if ($token != "your_generated_token") {
            return 403;
        }
        # 其他配置,如袋里、缓存等
    }
}

3. 注意事项

  • 性能影响:复杂的防盗链逻辑(比如签名验证、Token验证)会增加Nginx的CPU开销,高并发场景下尤其明显。如果只是简单防扒,用referer就够了。
  • 安全性:签名和Token的生成算法一定要保密,别用简单的md5拼接,最好加盐、加时间戳,防止被暴力破解。
  • 灵活性:实际场景中,你可能需要允许某些特定的子域名,或者给CDN节点白名单。记得根据实际需求调整valid_referers的规则。

通过以上配置,Nginx的防盗链功能就能跑起来了,资源不会轻易被别人白嫖。记住一点:没有绝对安全的防盗链,但多一层防护,就多一分安心。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备2026025700号-3 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。