Сейчас я работаю над проектом, который представляет собой очень простое программное обеспечение для родительского контроля, но я хочу знать, какой URL-адрес запрашивается в Firefox для получения ответа на его основе … если вы можете помочь, потому что я не знаю, как разрешить мое программное обеспечение знает, какой URL запрашивает firefox .. Как это сделать?
Я должен использовать C ++ в большинстве моих программ .. но если есть лучший язык для этой задачи, пожалуйста, посоветуйте мне
В Firefox вам нужно использовать компонент XPCOM, называемый nsIHTTPChannel. Этот скрипт ниже заблокирует отмену всех запросов в Google. Канал открывается, но прерывается перед открытием соединения с сервером.
var {classes: Cc, results: Cr, utils: Cu} = Components;
Cu.import('resource://gre/modules/Services.jsm');
var httpRequestObserver =
{
observe: function(subject, topic, data)
{
var httpChannel, requestURL;
if (topic == 'http-on-modify-request') {
httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
requestURL = httpChannel.URI.spec;
if (/google\.com/.test(requestURL)) {
httpChanel.cancel(Cr.NS_BINDING_ABORTED);
}
return;
}
}
};
Services.obs.addObserver(httpRequestObserver, 'http-on-modify-request', false);
//Services.obs.removeObserver(httpRequestObserver, "http-on-modify-request", false); //run this to remove observer
Могу ли я предложить альтернативный подход? Вместо того, чтобы писать расширение для Firefox и расширение для Chrome и расширение для IE … слушайте сетевые интерфейсы ОС для трафика и блокируйте нежелательные URL-адреса.
Это традиционно работа брандмауэра. Использование существующего решения предоставит наиболее эффективные средства решения вашей проблемы. Я не знаком с возможностями встроенного брандмауэра Windows или сторонних альтернатив, но что-то вроде этого было бы тривиально с iptables (Linux).