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

Javascript 在重定向时修改用户代理字符串,javascript,user-agent,Javascript,User Agent,我正在尝试更改重定向上的用户代理字符串。因此,如果用户点击此页面,他们将使用定义的用户代理字符串重定向到其他页面 这是我到目前为止的JavaScript: <script type="text/javascript"> if (navigator.__defineGetter__) { navigator.__defineGetter__("userAgent", function () { return 'Mozilla/5.0 (

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

这是我到目前为止的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>

如果(导航器._定义设置器){
导航器.______;定义者___;(“用户代理”),函数(){
返回“Mozilla/5.0(iPad;CPU操作系统5_1_1,如Mac OS X)AppleWebKit/534.46(KHTML,如Gecko)Mobile/9B206”;
});
} 
else如果(Object.defineProperty){
Object.defineProperty(导航器,“用户代理”,{
get:function(){
返回“Mozilla/5.0(iPad;CPU操作系统5_1_1,如Mac OS X)AppleWebKit/534.46(KHTML,如Gecko)Mobile/9B206”;;
}
})
}
document.location=”http://www.whatsmyuseragent.com";

但是,如果您将其转储到空HTML页面并运行它,您可以在What's My User Agent网站上看到用户代理字符串未被修改。你认为我做错了什么吗?

你不能这么做,因为这是“xss漏洞”。javascript代码从上到下调用。首先,导航器被更新,然后页面被重定向。当浏览器开始加载“”页面时,您的更改将被清除。

您可以更改您的用户代理,并向“”发送获取ajax请求以获取此服务

e、 g。 或


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

我理解这样一种说法,即对于给定的脚本块,从上到下调用Javascript。我不明白的是你说更改被清除了。是否有一个标准流程,通过该流程在重定向之前清除任何头更改,以防止XSS漏洞?
$.ajaxSetup({
  beforeSend: function(request) {
    request.setRequestHeader("User-Agent","InsertUserAgentStringHere");
  }
});