通过重定向更改http-referer

时间:2010-09-02 14:38:16

标签: javascript redirect referrer http-referer

我们正在注册一个在线资源,该资源使用http-referer作为身份验证(我知道这个坏主意)来证明请求来自我们的内部网(由于有更高级别的代理,IP地址不可用)

不幸的是,他们的系统可能需要特定的引用URL而不是域名。这意味着当我们想要从不同的页面链接到资源时,我们需要向他们注册另一个URL,或者链接到他们必须再次点击的启动页面。

如果我们需要沿着这条路走下去,我想让它尽可能不明显,所以想知道实现以下目标的最佳方法是什么:

  1. http://intranet/somerandomurl
  2. 的链接
  3. http://intranet/AuthorisedUrl需要成为
  4. 的推荐人
  5. http://externalsite/
  6. 有没有办法做到这一点,而不是让人们点击链接? (绝大多数浏览器将是IE6或IE7,如果有帮助,如果有些人需要点击链接但我可以使用JS,大多数我都可以。)

1 个答案:

答案 0 :(得分:2)

将此代码放在链接2上。对于启用了JavaScript的用户,

 <script type="text/javascript">

window.location = "http://example.com/"

</script>

一旦执行,它会将它们重定向到http://example.com/。尽早将其放在<head>内,以便尽可能在页面加载的早期发生重定向

然后只需在页面上放置手动链接即可禁用JavaScript。

无论哪种方式,链接2将是externalsite的推荐人。

(警告:这是一种非常非常不安全的身份验证方法。)


编辑:看起来有一个已知的问题,一些IE版本在javascript重定向后没有传递Referer标题。以下是解决方法:http://webbugtrack.blogspot.com/2008/11/bug-421-ie-fails-to-pass-http-referer.html