У вас есть только два варианта — использовать http-прокси или написать плагин для каждого браузера. Этот подключаемый модуль может просто пересылать данные по сети в центральную службу, оставляя вам задачу создать общий набор данных, который могут предоставить все браузеры, а также изучить все модели подключаемых модулей.
Однако, на мой взгляд, единственным реальным вариантом является прокси-сервер HTTP (s), потому что в противном случае вам придется обновлять свои плагины каждый раз, когда меняются браузеры, или иметь дело с тем фактом, что новые браузеры могут появиться и использоваться.
Конечно, вы не найдете событие «пользователь просматривает URL-адрес в каком-то браузере» в ОС - все, что она знает, это то, что на каком-то локальном порту было открыто сокетное соединение с портом 80/443 удаленного сервера (или что-то еще).
Поэтому я настоятельно рекомендую опираться на превосходную работу, стоящую за Fiddler, и использовать Fiddler Core.
http://www.telerik.com/fiddler/fiddlercore
Для https вы должны расшифровать и повторно зашифровать с другим сертификатом. Нужная вам информация просто недоступна без фактической распаковки запроса. Fiddler достигает этого, открывая собственный туннель SSL к целевому серверу от имени клиента, действуя при этом как сервер SSL для клиента под другим сертификатом. Пока клиент полностью доверяет используемому сертификату, проблем не возникает.
Тем не менее, это означает, что пользователь не может лично проверить идентификацию целевого сайта, поэтому вашей системе придется предположить наихудший сценарий для любых недействительных сертификатов SSL и заблокировать соединение.
person
Andras Zoltan
schedule
21.03.2012