【问题标题】:Spoof JS Objects欺骗 JS 对象
【发布时间】:2011-07-15 21:39:27
【问题描述】:

我一直想知道是否有办法欺骗 JS 对象,如导航器、屏幕等,以便在页面请求时发送虚假数据。

我使用 C# 开发一个包含 GeckoFx 浏览器的应用程序,我想做这样的事情:每次我打开一个包含 JS 的网页来检索有关用户的信息(例如屏幕分辨率,我安装了哪些插件等),浏览器应该发送虚假信息(我的屏幕分辨率是 1024x768,我想发送 1440x900 等)。

谁能帮我提供这条信息?

谢谢!

【问题讨论】:

    标签: c# javascript object browser spoof


    【解决方案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。我猜你不能跨浏览器做到这一点。

    【讨论】:

    • 你在哪个浏览器中运行小提琴?
    • 猜你不能在所有浏览器上都这样做。适用于 Chrome 和 Opera,不适用于其他。
    • 好的,谢谢!但我的问题仍然存在。我真的需要这个,特别是对于 Mozilla。
    • 如果您尝试更改底层浏览器报告的屏幕分辨率,它来自屏幕对象,我们刚刚表明 Mozilla 不允许您更改它。如果您想稍微扩展您的问题以解释您在更高级别上尝试做什么,那么也许人们可以提出其他想法。
    • 简而言之……在更高的层次上,我想实现一种允许您发送虚假信息的浏览器应用程序。我不想让站长知道我有什么CPU,我的屏幕分辨率是多少等等。有人想通过 JS 检索到的每一条信息我都想是假的。
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2019-06-05
    • 2011-04-01
    相关资源
    最近更新 更多