Обнаружение поддержки браузера SSL - PullRequest
3 голосов
/ 19 июля 2010

Как определить, поддерживает ли браузер клиента поддержку SSL? Я не ссылаюсь на сервер Переменные HTTPS_ *. Я хочу быть в состоянии определить если браузер не поддерживает SSL.

P.S. Я знаю, что это возможно, потому что эта компания (http://www.cyscape.com) есть продукт, который может даже обнаружить, когда вы отключите поддержку SSL от вашего настройки браузера.

Ответы [ 4 ]

1 голос
/ 19 июля 2010

Все браузеры имеют поддержку SSL (точка).Никто не собирается выпускать браузер, который нельзя использовать.HTTPS - это требование безопасности, кроме OWASP A3: сломанная аутентификация и управление сеансами.

0 голосов
/ 20 июля 2010

Проверяет, будет ли клиент поддерживать SSL, подвергаться атакам «Человек посередине», когда активный сетевой злоумышленник получает контроль над соединением пользователя и создает впечатление, будто клиент не поддерживает SSL.

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

0 голосов
/ 20 июля 2010

Как уже упоминалось, нет никакой причины, по которой современный веб-браузер отключил бы SSL по умолчанию.

На уровне SSL ваш сервер получает соединение, когда вы даете браузеру ссылку https?

На уровне HTTP вы можете попробовать различные сценарии, которые назначают cookie-файл сеанса через HTTP, а затем обновляют некоторые переменные сеанса по ссылкам, доступным только через HTTPS. Или вы можете установить атрибут «secure» в cookie и посмотреть, как браузер обрабатывает его.

Вы можете попробовать методологию JavaScript и проверить свойство window.location или просто попытаться установить для него ссылку https. (Или попробуйте некоторые функции Java с помощью LiveConnect или сделайте что-то похожее с Flash.)

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

0 голосов
/ 20 июля 2010

Несмотря на то, что проверить, поддерживает ли сервер SSL-соединения, сравнительно легко, обнаружить поддержку браузера для них крайне сложно. Решение, вероятно, требует клиентского расширения браузера, которое реализует логику, необходимую для поиска через конфигурацию браузера или информацию о версии для поддержки SSL. Эта проблема становится еще более сложной, поскольку расширение должно работать с несколькими браузерами.

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

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