2

Вот фрагмент кода:Как я могу использовать объект приложения для безопасного просмотра, чтобы определить, является ли URL-адрес фишинговым сайтом или сайтом вредоносного ПО?

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?

+0

Ссылка на код: http://mxr.mozilla.org/mozilla-central/source/browser/components/safebrowsing/content/ –

ответ

3

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

 Смежные вопросы

  • Нет связанных вопросов^_^