在重定向上修改用户代理字符串

时间:2015-12-09 17:37:43

标签: javascript user-agent

我正在尝试更改重定向上的User-Agent字符串。因此,如果用户点击此页面,则会使用已定义的用户代理字符串将其重定向到其他页面。

所以,这是我到目前为止的JavaScript:

<script type="text/javascript">
    if (navigator.__defineGetter__) {
        navigator.__defineGetter__("userAgent", function () { 
            return 'Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206';
        });
    } 
    else if (Object.defineProperty) { 
        Object.defineProperty(navigator, "userAgent", { 
            get: function () { 
                return 'Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206';;
            }
        })
    }

    document.location = "http://www.whatsmyuseragent.com";
</script>

但是,如果将其转储到空的HTML页面并运行它,您可以在What's My User Agent网站上看​​到未修改User-Agent字符串。对我做错了什么的想法?

2 个答案:

答案 0 :(得分:0)

你不能这样做,因为它是&#34; xss漏洞&#34;。你的javascript代码从上到下调用​​。首先,更新导航器,然后重定向页面。当浏览器开始加载&#34; http://www.whatsmyuseragent.com&#34;页面,您的更改已被清除。

答案 1 :(得分:0)

您可以更改您的用户代理并将ajax请求发送到&#34; http://www.whatsmyuseragent.com&#34;哄骗这项服务。

e.g。 here in vanila js

$.ajaxSetup({
  beforeSend: function(request) {
    request.setRequestHeader("User-Agent","InsertUserAgentStringHere");
  }
});

但是当您更改位置时,您的用户代理将成为浏览器的默认位置。