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

Modify User Agent String on Redirect

本文关键字:用户代理 字符串 修改 重定向      更新时间:2023-09-26

我正在尝试更改重定向时的用户代理字符串。因此,如果用户点击此页面,他们将使用定义的用户代理字符串重定向到另一个页面。

所以,这就是我目前拥有的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字符串没有被修改。你觉得我做错了什么吗?

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

您可以更改用户代理并将get-ajax请求发送到"http://www.whatsmyuseragent.com"用于欺骗此服务。

例如vanila js或

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

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