我有一个从外部服务器加载图像的脚本。该脚本在许多不同的网站上运行,我需要的是每次点击图像都会被代理,这样点击看起来就像来自,而myapp
无需将任何来源信息传递给外部服务器。我唯一想传递的信息是User IP
和User-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>
我怎样才能正确地掩盖原点?除了 、Referer
和Origin
之外,还有其他方法可以传递信息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 也是如此。
但从他们的仪表板上我可以看到,许多点击都被正确屏蔽了,而有些点击却传递了来源信息,我不知道为什么
由于您没有在此提供任何数据,因此我们也不会。
您是否知道,您所创建的配置相当于一个开放的网络代理,可以被各种恶意行为所利用?