Первым делом отключил JavaScript в отладочной консоли Chrome:
Так, и что же мы видим:
А видим мы то, что чудесным образом покинули зону https и браузер никак про это не сообщил. Аналогично происходит в Internet Explorer в Windows и в Safari в OS X. Это кажется немного странным, при том, что браузеры обычно переживают из-за смешанного содержимого на странице или о том, что вы покидаете безопасную зону.
Разбор лога показал, что происходит следующая цепочка перенаправлений:
- Заходим на https://pgu.mos.ru и получаем ответ от сервера «301 Moved Permanently» с адресом http://pgu.mos.ru/ru/ (вот он, тихий выход из https).
- По адресу http://pgu.mos.ru/ru/ возвращается ответ «403 Forbidden» и страница «Privacy Required» как на картинке выше. На странице, которая «This is a WebSEAL error message template file», содержится следующий скрипт:
<script language="JavaScript"> var href = self.location.href; var originalURL = href.substring(7,href.length); self.location = 'https://' + originalURL;</script>
- Попадаем на https://pgu.mos.ru/ru/.
В результате видим небольшое мерцание в адресной строке и вроде бы все хорошо, но данная странная реализация делает возможной атаку, когда можно подменить сайт http и перенаправить на свой фейковый https сервер. Другими словами становится легко реализуема MITM-атака. Особенно опасно это из-за того, что пользователи если и смотрят на валидность сертификата сайта, до делают это только на первой странице.
Перенаправление с главной страницы не единственное. Аналогично происходит если ткнуть во многие ссылки на портале. Например, так происходит со ссылкой «Центры госуслуг» на главной страницы (https://pgu.mos.ru/ru/mfc). Серверу не нравится что адрес не имеет «/» на конце и он перенаправляется через http зону в правильный, по мнению сервера, адрес.
Собственно, о результатах своего расследования я и написал в форму обратной связи на сайте pgu.mos.ru. Ответ получил совершенно шикарный: «Пришлите скриншот ошибки». При том, что ни про какую ошибку я им вообще не писал, а писал о проблеме с безопасностью. За все это время (обращение и ожидание ответа), проблема так и не была исправлена. В статью добавил скриншот ошибки как раз на случай, если прочитают админы городского портала.