如何使用安全浏览应用程序对象来确定是否将网址报告为网上诱骗网站或恶意软件网站?

时间:2010-09-17 04:38:04

标签: firefox-addon dataprovider malware phishing safe-browsing

以下是代码段:

Components.classes['@mozilla.org/safebrowsing/application;1']
    .getService().wrappedJSObject.malwareWarden.listManager_
    .safeLookup(test_url, function(tableName){
        if (tableName == 'goog-phish-shavar' || tableNmae == 'goog-malware-shavar') {
            alert('This is reported by Google! ');
        };
});

它工作正常,但我认为这不是'正确'的方式......

如果用户更改DataProvider会怎样?

1 个答案:

答案 0 :(得分:3)

使用wrappedJSObject访问XPCOM对象的任何方法或属性是一个等待发生的问题。通过wrappedJSObject访问的任何内容都被视为“私有”数据和方法 - 在将来的版本中可能会破坏。尽量避免它。

好消息是“listManager”本身就是一个全球XPCOM服务。使用以下方式直接访问它:

 var Cc = Components.classes;
 var Ci = Components.interfaces;
 var listManager = Cc["@mozilla.org/url-classifier/listmanager;1"].getService(Ci.nsIUrlListManager);

至于更改数据提供者,在此之前需要对Firefox进行大量的代码更改。如果是这样,我们希望也可以为XPCOM添加一些管理方法。