我一直想知道是否有办法欺骗导航器、屏幕等 JS 对象,以便在页面请求时发送虚假数据。
我使用 C# 开发一个包含 GeckoFx 浏览器的应用程序,我想做这样的事情:每次我打开一个包含 JS 的网页来检索有关用户的信息(例如屏幕分辨率、我安装了哪些插件等) ,浏览器应该发送虚假信息(我的屏幕分辨率是 1024x768,我想发送 1440x900 等)。
任何人都可以帮我处理这条信息吗?
谢谢!
我一直想知道是否有办法欺骗导航器、屏幕等 JS 对象,以便在页面请求时发送虚假数据。
我使用 C# 开发一个包含 GeckoFx 浏览器的应用程序,我想做这样的事情:每次我打开一个包含 JS 的网页来检索有关用户的信息(例如屏幕分辨率、我安装了哪些插件等) ,浏览器应该发送虚假信息(我的屏幕分辨率是 1024x768,我想发送 1440x900 等)。
任何人都可以帮我处理这条信息吗?
谢谢!
可以通过替换来欺骗 JS 对象。您显然必须非常小心,以免弄乱所需操作所需的功能。无论如何,这是一个如何替换屏幕对象以报告您想要的任何分辨率的示例。
在 jsFiddle 中运行:http: //jsfiddle.net/jfriend00/bfAYe/
var oldScreen = screen; // save old screen object just in case
var myScreen = {}; // create new screen object
// prefill with all properties of old object
for (var i in screen) {
myScreen[i] = screen[i];
}
screen = myScreen; // replace existing object with mine
screen.width = 1440; // change properites on mine
screen.height = 900;
// verify that changed properties are in place
$("#container").html("width="+screen.width+", height="+screen.height);
// outputs width=1440, height=900
似乎适用于 Opera 和 Chrome,但不适用于 IE9、FF5 或 Safari。我猜你不能跨浏览器做到这一点。