Как да слушате заявки от браузъра (прокси, добавка)?

Исках да знам кой е най-добрият начин да напиша агент на платформа Win, който ще може да наблюдава комуникацията на браузъра.

сценарий: наблюдавайте потребителския достъп до предварително дефиниран url в Chrome, FireFox и IE. При всяко посещение изпращам статистиката на сървър с някои данни (заглавие на страницата).

Начините, които открих досега, са добавки за прокси и браузър. Всеки има своите предимства и недостатъци. Основният недостатък на прокси начина е обработката на HTTPS комуникация. Недостатъкът на добавката е инсталацията (трябва да се инсталира във всеки браузър) и поддръжката на различни браузъри.

Има ли друг начин? някаква услуга, която мога да напиша с .net, която автоматично ще се закачи за браузър, когато се стартира?

Благодари ти.


person user1283002    schedule 21.03.2012    source източник
comment
на пазара има много приложения като http sniffer и т.н.... защо не използвате някое от тях?   -  person Karthikeyan Arumugam    schedule 21.03.2012
comment
Благодаря, но трябва да го напиша сам и да добавя малко функционалност. Наличните снифери няма да са подходящи за това.   -  person user1283002    schedule 21.03.2012


Отговори (1)


Имате само два избора - 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
comment
Благодаря, това е валидна опция, но искам да избегна прекратяването на SSL. Опитвам се да бъда възможно най-прозрачен (с изключение на първоначалната инсталация). - person user1283002; 21.03.2012
comment
Е, можете просто да нямате SSL слушател - може да се спори, че не трябва да инсталирате нещо, което така или иначе може да надуши SSL трафика на потребителите. Ако не сте запалени, тогава ще трябва да пишете добавки за всеки браузър - person Andras Zoltan; 21.03.2012
comment
SSL слушателят е задължителен, не ме интересуват данните, които се предават, нито параметрите GET/POST - само URL адресът и заглавието на страницата. Надявах се, че има някакъв механизъм за събития в Win, който ми позволява да получавам известия, когато нещо е свързано от всеки браузър - person user1283002; 22.03.2012
comment
Както казах - можете да направите SSL слушател, но единственият начин да получите url е да го декриптирате и шифровате отново с различен сертификат, всички данни на заявката извън целевия IP и портът се съхранява вътре в заявката. Няма събитие „разглеждане на URL“ за цялата операционна система - това е http(s) трафик и това е. Трябва да напишете прокси ИЛИ плъгин за всеки браузър, те са вашите два избора. - person Andras Zoltan; 22.03.2012
comment
Страхувах се от това, наистина се надявах да има нещо, което съм пропуснал. Сега трябва да избирам между разработка за всеки браузър (има рамки, които могат да помогнат) или да бъда по-натрапчив, използвайки прокси подхода. Благодаря ви много за вашата помощ и предложения. - person user1283002; 22.03.2012