我正在尝试更改重定向上的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字符串。对我做错了什么的想法?
答案 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");
}
});
但是当您更改位置时,您的用户代理将成为浏览器的默认位置。