nginx 反向代理 获取三方图片时的referer问题

发布于 2022-09-03 00:07:37 字数 832 浏览 15 评论 0

使用第某网站做一个网页,但想网址显示成自己的,又不想用301,于是使用nginx 反代理。
1.在使用nginx 反代理一个网页时,遇到被代理的网站有一个指向cdn的图片,防盗链的问题。
nginx 设置如下。

clipboard.png

2.查看被代理的网页发现:
<section class="page page-1 backgroundSize0" id="1092" style='background-image: url("http://img.weiye.me/zcimgdir/thumb/t_1465709656575cf458d71b6.jpg");

这个这个图片会带上我反代的网址作为referer.导致图片403,
经测试,如果不带referer,或者referer是被代理的url的话,图片是可以获取的。
clipboard.png

clipboard.png

所以问题来了,这个该怎么设置nginx呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

煮酒 2022-09-10 00:07:37

跟 nginx 没关系,这个请求根本就不过你的 nginx,你控制不了。

怼怹恏 2022-09-10 00:07:37

找到了一些答案.
1.因为html不太熟悉,目前查下来就是被代理的网页,请求了第三方网站图片,该网站会校验referer,但可以允许referer为空。
禁止请求时带上referer,问题就解决了。
Referrer Policy这里看到referrer的介绍,
嗯嗯,referer是可以禁止的,那我们就可最简单的,全局禁止referer
2.所以到这里

问题就是在nginx取回的reponse中加一个
<meta name="referrer" content="no-referrer">

3.这里
how-to-add-a-response-header-on-nginx-when-using-proxy-pass看到一文章,

4.所以现在就是用add_header或者more_set_header加一个禁止referrer,
对html不太熟,该怎么加?

森罗 2022-09-10 00:07:37

你好,受你的启发我解决了这个问题,在nginx中配置相应头Referrer-Policy即可控制浏览器不携带Referrer

location ^~ /c/ {

add_header Referrer-Policy no-referrer;
proxy_pass https://xxx/;

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文