如何在javascript中覆盖navigator.plugins?

时间:2015-08-11 16:39:17

标签: javascript plugins override

如何在javascript中覆盖navigator.plugins?
有一个网站使用 navigator.plugins 读取我的插件列表,我不想让他们阅读我的插件,我想向他们展示假插件列表。
我怎样才能做到这一点?

我知道这是重复的,但我对此不满意:
How to override navigator.plugins in javascript or how to set it null?

为了覆盖javascript中的函数,我们可以这样做:

<script type="text/javascript">
    window.DoStuff = function () {
        alert("bar");   //this is the override
    };

    function DoStuff() {
        alert("foo");   //this is the original, occuring later in the page
    };
</script>

但是 navigator.plugins 呢? 以下是我们阅读这些插件列表的方式:

if (navigator.plugins && navigator.plugins.length) {
    for (var v = "", w = 0; w < navigator.plugins.length; w++) {
        var x = navigator.plugins[w].name; -1 != x.indexOf("Java") && (t = !0);
        v += x + "\r\n"
    }
 alert(v);
}

如您所见,该网站是一个恶意网站,并且出于某些原因想要了解已安装的插件 我怎么能绕过他们呢?

<小时/> 根据第一个回答进行编辑:
那么我们如何用js函数更改代码并用主列表替换新的插件列表?
通过这种方式,无需更改只读 window.navigator.plugins

1 个答案:

答案 0 :(得分:0)

根据MDNWindow.navigator.plugins属性是只读的,这可能意味着您无法更改它。

https://developer.mozilla.org/es/docs/Web/API/Navigator