Javascript 通过重定向更改http引用程序

Javascript 通过重定向更改http引用程序,javascript,redirect,referrer,http-referer,Javascript,Redirect,Referrer,Http Referer,我们正在注册一个在线资源,该资源使用http referer作为身份验证(我知道这是个坏主意),以证明请求来自我们的内部网(IP地址不可用,因为存在更高级别的代理) 不幸的是,他们的系统可能需要一个特定的referer URL,而不是域。这意味着当我们想从不同的页面链接到资源时,我们需要向他们注册另一个URL,或者链接到他们必须再次点击的启动页面 如果我们需要沿着这条路线走下去,我想让它尽可能不被人注意,因此我想知道实现以下目标的最佳方法是什么: http://intranet/somerand

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

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

如果我们需要沿着这条路线走下去,我想让它尽可能不被人注意,因此我想知道实现以下目标的最佳方法是什么:

  • http://intranet/somerandomurl
    有一个指向
  • http://intranet/AuthorisedUrl
    哪些需要作为推荐人
  • http://externalsite/

  • 有没有办法做到这一点而不让人们点击链接?(如果有人需要点击链接的话,绝大多数浏览器都是IE6或IE7,但我可以使用JS,我同意)。

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

     <script type="text/javascript">
    
    window.location = "http://example.com/"
    
    </script>
    
    
    window.location=”http://example.com/"
    
    这将在执行后立即将它们重定向到。尽可能早地将其放在
    中,以便重定向尽可能早地发生在页面加载中

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

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

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



    编辑:一些IE版本在javascript重定向后没有传递
    Referer
    头,这似乎是一个已知的问题。这里是解决方法:

    我认为它必须是客户端JS。但是,是否存在浏览器不一致性问题,一些人根据需要更改了referer,而另一些人则没有?(是的,我同意这个警告,但这不是我们的系统,所以我对此无能为力)。不应该有任何浏览器不一致,但您可以在这里进行测试:。单击该链接将带您到2.html,它将Javascript重定向到3.php,设置为回显HTTP_REFERER。应该是2.html;如果它说的是1.html,那么你的浏览器就不一致了;IE不会传递JavaScript重定向的http_引用;请参阅我的编辑以获得修复。测试不起作用(document.body引用在DOM中加载body元素之前出现),但IE的问题是需要解决的主要问题,因此答案被接受。仍然不起作用。脚本必须放在body标签中,或者放在头部的一个函数中,该函数在body中被调用,将其作为一个类似于webbugtrack的函数也具有可重用的优点。我还将浏览器嗅探替换为IE条件注释。