一、为什么传统防盗链手段不够用?
valid_referers
指令实现:location ~* \.(gif|jpg)$ {
valid_referers none blocked *.ruandao.com.cn;
if ($invalid_referer) {
return 403;
}
}
http://
)二、secure_link模块:安全防护新思路
ngx_http_secure_link_module
模块(0.7.18+)提供了基于加密签名和时效验证的解决方案location /images/ {
# 启用安全链接验证
secure_link $arg_token,$arg_exp;
secure_link_md5 "$secure_link_expires$uri test#token";
# 验证结果
if ($secure_link = "") {
return 403; #无效令牌
}
if ($secure_link = "0") {
return 410; #已过期
}
# 关闭目录列表功能
autoindex off;
# 缓存头设置
expires 30d;
add_header Cache-Control "public";
}
三、安全链接生成
/*** 生成安全链接
* @param baseUrl 基础URL.如<a >https://ruandao.com.cn</a>,不能包含路径。
* @param path 路径.如/images/logo.png
* @param key 加密密钥。需要与Nginx的key一致
* @param expires 有效时长,单位为秒
* @return 完整的安全链接URL
*/
public static String generate( String baseUrl, String path, String key, long expires) {
try {
// 过期时间戳
long expiry = Instant.now().getEpochSecond() + expires;
// 构建签名字符串(格式必须与Nginx配置一致)
String signData = expiry + path + " " + key;
// 计算 MD5
byte[] raw = MessageDigest.getInstance("MD5").digest(signData.getBytes(StandardCharsets.UTF_8));
// BASE64编码并做URL安全处理
String token = Base64.getUrlEncoder().withoutPadding().encodeToString(raw);
return baseUrl + path + "?token=" + token + "&exp=" + expiry;
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("安全链接生成失败",e);
}
}
四、实际应用场景
1. 下载加速服务
为付费用户生成30分钟有效的高清资源下载链接,过期自动失效
2. 视频点播保护
对HLS视频流m3u8文件和ts分片进行签名验证,防止非法抓取
3. 敏感文档访问
对财务报告、合同文档等敏感资源设置精确到秒的访问窗口
五、与传统方案对比
防护维度 | Referer方案 | secure_link |
---|---|---|
结语
secure_link模块为Nginx提供了企业级的资源保护能力,通过密码学签名和时效控制的双重保障,彻底解决了传统防盗链方案的短板。无论是防止热门资源被盗用,还是保护核心业务接口,secure_link都能提供可靠的安全保障。

優(yōu)網(wǎng)科技秉承"專業(yè)團(tuán)隊、品質(zhì)服務(wù)" 的經(jīng)營理念,誠信務(wù)實(shí)的服務(wù)了近萬家客戶,成為眾多世界500強(qiáng)、集團(tuán)和上市公司的長期合作伙伴!
優(yōu)網(wǎng)科技成立于2001年,擅長網(wǎng)站建設(shè)、網(wǎng)站與各類業(yè)務(wù)系統(tǒng)深度整合,致力于提供完善的企業(yè)互聯(lián)網(wǎng)解決方案。優(yōu)網(wǎng)科技提供PC端網(wǎng)站建設(shè)(品牌展示型、官方門戶型、營銷商務(wù)型、電子商務(wù)型、信息門戶型、微信小程序定制開發(fā)、移動端應(yīng)用(手機(jī)站、APP開發(fā))、微信定制開發(fā)(微信官網(wǎng)、微信商城、企業(yè)微信)等一系列互聯(lián)網(wǎng)應(yīng)用服務(wù)。