3

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

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

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

  1. http://intranet/somerandomurl有一个链接
  2. http://intranet/AuthorisedUrl这需要是推荐人
  3. http://externalsite/

有什么方法可以做到这一点,而无需真正让人们点击链接?(如果有帮助的话,绝大多数浏览器将是 IE6 或 IE7,如果有些人需要点击链接,但我可以使用 JS 大多数情况下我可以接受)。

4

1 回答 1

3

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

 <script type="text/javascript">

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

</script>

这将在执行后立即将它们重定向到http://example.com/。尽可能早地把它放在尽可能早的<head>地方,以便在页面加载时尽可能早地进行重定向

然后只需在页面上为禁用 JavaScript 的用户添加一个手动链接。

无论哪种方式,链接 2 都将成为外部站点的引荐来源。

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


编辑:似乎存在一个已知问题,即某些 IE 版本Referer在 javascript 重定向后未传递标头。这是解决方法:http ://webbugtrack.blogspot.com/2008/11/bug-421-ie-fails-to-pass-http-referer.html

于 2010-09-02T14:50:05.897 回答