我有一个网站“www.website.com”。最近我发现有人在我的网站前面设置了一个反向代理,其 URL 几乎与我的网站“www.website1.com”相同。我担心那些通过该反向代理访问我网站的用户。他们登录时可能会记录他们的用户名和密码。
有没有办法让我的 Web 服务器拒绝反向代理?例如,我使用 squid 设置了一个反向代理,网址为“www.fakestackoverflow.com”,位于“www.stackoverflow.com”前面。因此,每当我在 Web 浏览器地址栏中输入“www.fakestackoverflow.com”时,反向代理都会将我重定向到“www.stackoverflow.com”。然后我注意到地址栏中的网址更改为“www.stackoverflow.com”,表示我不再通过反向代理。“www.stackoverflow.com”一定检测到我从另一个网址访问该网站,然后通过实际网址将我重定向到该网站。如何在运行 ASP.NET Web 应用程序的 IIS7 中执行类似操作?
我曾尝试在我的页面中添加 javascript 代码来检测 window.location 并适当地重定向它,但这会导致翻译和谷歌缓存服务失败。stackoverflow.com 在“重定向”方面做得很好,并且不会导致谷歌翻译失败。
答案1
第一个解决方案是使用 HTTPS 保护你的网页,并确保在首页上警告用户该 URL必须是https://www.website.com。
如果没有,他们就应该手动输入。(许多银行在这种情况下都会这么做)。
另外,您可以对反向代理的 IP 进行防火墙保护。您可以使用流量量来检测 IP,该特定 IP 的流量会高得多。但要小心不要阻止企业代理!
答案2
代理应添加一个或多个代理标头请求,可以检测到并适当地重定向客户端。请注意,一些 ISP 可能会使用透明代理,除非采取适当的措施,否则他们的客户将无法访问您的网站。