NGINX 反向代理 - 向目标服务器隐藏原始信息

NGINX 反向代理 - 向目标服务器隐藏原始信息

我有一个从外部服务器加载图像的脚本。该脚本在许多不同的网站上运行,我需要的是每次点击图像都会被代理,这样点击看起来就像来自,而myapp无需将任何来源信息传递给外部服务器。我唯一想传递的信息是User IPUser-Agent

我无法控制外部服务器,但从他们的仪表板我可以看到许多点击都被正确屏蔽了,而有些点击传递了原始信息,但我不知道为什么。

这是我的nginx.conf

location /rvsprx {
    proxy_set_header Referer         "https://www.myapp.com";
    proxy_set_header Origin          "https://www.myapp.com";
    proxy_hide_header                Set-Cookie;
    proxy_ignore_headers             Set-Cookie;
    proxy_set_header                 Cookie "";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP       $remote_addr;
    #use google as dns
    resolver                         8.8.8.8;
    proxy_pass                       $arg_dest;
}

这是脚本创建的 HTML 示例somesite.com

<a href="https://www.myapp.com/rvsprx?dest=https://www.externalserver.com/landing.html">
  <img src="https://www.myapp.com/rvsprx?dest=https://www.externalserver.com/someimage.jpg"
</a>

我怎样才能正确地掩盖原点?除了 、RefererOrigin之外,还有其他方法可以传递信息Cookie吗?

提前致谢。

答案1

这应该是一条评论但是它有点长。

我有一个从外部服务器加载图像的脚本

如果脚本有效,那么为什么要尝试用无效且不安全的 nginx 配置替换它?

不向外部服务器传递任何来源信息

在 Web 架构中,“来源”一词适用于提供内容的服务器。您将该术语应用于 HTTP 请求,这使得阅读您的问题变得相当困难。

proxy_ignore_headers 设置 Cookie;

HTTP 客户端在请求中不提供 Set-Cookie 标头。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

这似乎与您所述的要求相矛盾。X-Real-IP 也是如此。

但从他们的仪表板上我可以看到,许多点击都被正确屏蔽了,而有些点击却传递了来源信息,我不知道为什么

由于您没有在此提供任何数据,因此我们也不会。

您是否知道,您所创建的配置相当于一个开放的网络代理,可以被各种恶意行为所利用?

相关内容