Skip to content

Nginx 防盗链导致 a 标签链接 403 错误排查

Published: at 01:39 PMSuggest Changes

我网站是 itnote.me,页面上有个链接,代码是这样的

<a href="https://files.itnote.me/d/XXX/xxx.mp3" target="_blank">下载文件</a>

结果通过页面跳转打开这个链接的时候,竟然 403 错误,我直接复制链接在浏览器中打开却能正常访问。 百思不得其解之下,我查了一下,可能和防盗链(跨域)有关,去看了一下 nginx 的配置

Nginx 反向代理配置文件参考

在 Nginx 文件夹下创建 conf 文件,用于反代。

location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv|mp4)$ {
  valid_referers none blocked *.itnote.me files.itnote.me;
  if ($invalid_referer) {
      return 403;
  }
}

这段代码很有意思哈,虽然表明了 *.itnote.me files.itnote.me 是可以访问的,但是注意一下,没有表明 itnote.me 是可以访问的,这就造成了 a 标签元素打不开链接

很低级的错误。但挺有意思的,没想到 a 标签打开的页面再某些情况下也会触发防盗链(跨域)问题。


Previous Post
JavaScript 获取数组中重复次数最多的项
Next Post
JavaScript 替换字符串中的回车符 ' '