Spoof JS Objects - PullRequest
       31

Spoof JS Objects

2 голосов
/ 16 июля 2011

Мне было интересно, есть ли способ подделать JS-объекты, такие как навигатор, экран и т. Д., Чтобы отправлять поддельные данные всякий раз, когда страница запрашивает их.

Я использую C # для разработки приложения, которое содержит браузер GeckoFx, и я хочу сделать что-то вроде этого: каждый раз, когда я открываю веб-страницу, которая содержит JS, чтобы получить информацию о пользователе (например, разрешение экрана, какие плагиныЯ установил и т. Д.), Браузер должен отправлять поддельную информацию (мое разрешение экрана 1024x768, и я хочу отправить 1440x900 и т. Д.).

Может кто-нибудь помочь мне с этой информацией?

Спасибо!

1 Ответ

5 голосов
/ 16 июля 2011

Возможно подделать объекты 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. Я думаю, вы не можете сделать это через браузер.

...