Возможно ли для настольного приложения получить URL веб-сайта? - PullRequest
1 голос
/ 27 ноября 2011

Я разрабатываю настольное приложение, которое должно уведомлять пользователя, если антивирус или другое программное обеспечение безопасности отключено, как только пользователь открывает веб-сайт банка. URL веб-сайта банка известен приложением. Моему приложению необходимо открыть окно уведомлений, если к данному банковскому сайту будет обращаться пользователь. Я хочу, чтобы приложение проверяло, какой сайт (ссылка) открывается пользователем, и если это предопределенная ссылка, должна появиться форма уведомления. , Возможно ли что-то подобное сделать без разработки надстроек браузера?

Ответы [ 5 ]

1 голос
/ 27 ноября 2011

Короткий ответ - нет.

Более длинный ответ - Да.Но вам придется заняться либо анализом сети (не будет работать - банковский трафик обычно шифруется), либо работой с памятью (чтение строк из ОЗУ вручную и т. Д.).В обоих случаях сделать надстройку для браузера проще как минимум в 1000 раз.

0 голосов
/ 27 ноября 2011

Если ваше настольное приложение .Net используется для отображения уведомления, когда пользователь заходит на ваш предварительно определенный банковский веб-сайт.Тогда, учитывая усилия, требуемые для альтернативных ответов, из опыта (в области финансов) не имеет смысла заставлять ваше приложение запускать ссылку.Затем вы можете выполнить свои проверки, показать уведомление, и если вы запустите веб-сайт с уникальным параметром строки запроса, сгенерированным из настольного приложения, пользователи, просматривающие веб-сайт, будут иметь дополнительный уровень безопасности.

Если у пользователей нет вашегоприложение установлено, но это не наносит ущерба выполнению всех этих проверок (чтобы уведомить пользователя, если антивирус или другое защитное программное обеспечение отключено, когда пользователь открывает веб-сайт банка).

0 голосов
/ 27 ноября 2011

Это невозможно. (По крайней мере, без особой работы и / или ручной настройки на каждом компьютере)

Вам нужно решить много проблем:

  1. Как вы собираетесь получить "URL" от "браузера"?
  2. А как насчет безопасности?
  3. Как определить, включен ли антивирус или брандмауэр?

Давайте разделим «URL» на более мелкие части (давайте ограничимся http-протоколом):

HTTP - это TCP / IP-соединение между двумя IP-адресами и двумя портами, сервер обычно отвечает на порт 80 (если вы опустите порт, по умолчанию установлено значение 80). Пример URL:

http://123.123.123.123:456 (подключиться по http к ip 123.123.123.123 через порт 456)

Тогда у нас есть днс; доменное имя будет переведено на IP-адрес, например:

http://foobar.com => http://123.123.123.123 (перевод DNS с foobar.com на 123.123.123.123)

Теперь предположим, что вы добавили путь к вашему URL, например:

http://foobar.com/path/to/page.htm

Что нам теперь делать? В TCP / IP нет такого понятия, как «путь». Это на уровне HTTP. Давайте рассмотрим очень простой http-URL и его перевод на TCP / IP-соединение:

http://foobar.com/path/to/page.htm =>

  1. Клиент ищет foobar.com => 123.123.123.123
  2. Клиент подключается к 123.123.123.123 через порт 80
  3. Клиент отправляет на сервер следующие данные:
GET /path/to/page.htm HTTP/1.1
Host: foobar.com


Как вы собираетесь заполучить tcp / ip-соединения (и их "содержимое")?

У вас есть несколько вариантов:

  • Фильтр (установлен на сетевом уровне. Чувствительные вещи, все, что я пробовал, вызывало нестабильность и потерю производительности, кроме проблем - брандмауэры ..)
  • Прокси-сервер (вы должны убедиться, что каждый браузер перенаправил свой сетевой трафик через ваш прокси-сервер - глобальных настроек нет, у каждого браузера свой путь)
  • Какой-то плагин для браузера (вы должны написать новый плагин для каждого браузера и убедиться, что он включен)

Давайте посмотрим на безопасность - в случае использования HTTPS (HTTP с SSL) возникает другая проблема: содержимое каждого сетевого подключения шифруется, и вы не можете расшифровать его, если у вас нет ключа (и у вас нет т, если вы не предоставите свой собственный, но тогда браузер не будет доверять вашему ключу и выдаст большое предупреждение, если вы не установили свой ключ в браузере. И вы не хотите этого делать - это довольно большая безопасность риск ..)

Давайте представим, что вы решили эту проблему, как вы узнаете, установлен и включен ли антивирус? И брандмауэр? У каждого антивируса и брандмауэра свой путь.

0 голосов
/ 27 ноября 2011

гипотетически, если ваше приложение действовало как HTTP-прокси для браузера пользователя, тогда да .. вы могли бы перехватить запрос на веб-сайт Банка и ответить своими рекомендациями для пользователя ..

0 голосов
/ 27 ноября 2011

Это возможно, разработав либо надстройку для браузера и / или http (s) -прокси, и / или изолировав браузер, и / или заменив браузер модифицированной версией, и / или взломав браузер ...

Если вы действительно хотите сделать это с обычным настольным приложением, то это вполне возможно (опрос браузера на предмет открытых в настоящее время URL-адресов), НО я бы настоятельно рекомендовал этого не делать ... он не будет работать надежно и приведет к нагрузка на ресурсы ...

Если бы мне пришлось это реализовать, я бы обязательно написал надстройку для браузера и / или прокси-сервер http (s) ... есть ли причина, по которой вы исключаете надстройку для браузера для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...