最贴近真实盗链场景的测试方式是直接在第三方网页嵌入视频链接,需验证nginx防盗链是否真正生效:通过本地html页面模拟引用,用开发者工具检查请求状态码(应为403)、referer字段及响应头,并补充curl、本站播放、直接访问和移动端等边界测试。

直接在第三方网页中嵌入你的视频链接,是最贴近真实盗链场景的测试方式。关键不是看Nginx配置有没有语法错误,而是验证它是否真能拦住非法引用。
准备一个简易测试页面
新建一个本地HTML文件(比如test-hotlink.html),内容如下:
模拟第三方网站
把yourdomain.com换成你的真实域名,sample.mp4换成你已部署且受防盗链保护的视频路径。
用浏览器打开这个HTML文件(注意:不要直接双击用file://协议打开,建议用http://localhost/test-hotlink.html或任意本地Web服务托管)。
观察三个关键信号
打开浏览器开发者工具(F12),切换到Network标签页,刷新页面,重点看:
- 视频请求是否发出 —— 检查是否有sample.mp4的请求条目
- 响应状态码 —— 正常应返回403,若返回200说明未拦截
- Response Headers 中是否有X-Content-Type-Options或自定义头(如你配了add_header X-Hotlink "denied"),可辅助确认规则命中
对比验证 Referer 值是否被正确识别
在Network面板中点击该视频请求,查看Headers → Request Headers → Referer字段值:
- 如果显示为http://localhost/test-hotlink.html或类似非你白名单域名,且返回403,说明拦截生效
- 如果Referer为空(即没有该字段),但你配置了none,则应放行;若仍返回403,说明none未生效或位置有误
- 如果Referer是https://yourdomain.com/some-page,应返回200 —— 这是合法来源,必须能通
补充验证易忽略的边界情况
有些场景容易漏测,建议顺手试一下:
- 用curl -H "Referer: https://bad-site.com"命令请求视频URL,看是否返回403
- 在你自己的网站页面里嵌入同一视频,确认能否正常播放(白名单是否覆盖了所有子域名和协议)
- 把视频URL粘贴到浏览器地址栏直接访问,确认是否能打开(对应none是否起作用)
- 用手机浏览器打开你自己的网页播放视频,检查是否因WebView行为异常导致误拦截











