Spoof JS Objects
Мне было интересно, есть ли способ подделать JS-объекты, такие как навигатор, экран и т. Д., Чтобы отправлять поддельные данные всякий раз, когда страница запрашивает их.
Я использую C# для разработки приложения, которое содержит браузер GeckoFx, и я хочу сделать что-то вроде этого: каждый раз, когда я открываю веб-страницу, которая содержит JS, чтобы получить информацию о пользователе (например, разрешение экрана, какие плагины, которые я установил, и т. Д.), браузер должен отправлять ложную информацию (мое разрешение экрана 1024x768, и я хочу отправить 1440x900 и т. д.).
Может ли кто-нибудь помочь мне с этой информацией?
Спасибо!
1 ответ
Можно подделать объекты 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. Я думаю, вы не можете сделать это через браузер.