Несколько дней назад на сайте одного интернет-магазина провели очередной аудит поисковой оптимизации. В процессе аудита был найден странный эффект, связанный с просмотром сайта, когда браузер переключен в режим инкогнито.
Следует сразу отметить, упоминавшийся сайт (назовём его условно example.com) оптимизируют то ли в традициях патологической жадности, то ли разумом правит неудержимость очумелых ручек. Прямо классика жанра: начали со школьника Васи - его просили копнуть здесь и там, ибо так рекомендовал гуру общаги - студент Петя, которому советы нашёптывала баба Маша с колхозного рынка. Через год таких работ уже не понять, кто на сайте что делал и с какого бодуна вот эту пимпочку приделали.
Так что обнаруженный эффект мог произойти из-за чего угодно. Но предполагая, что инцидент и в самом деле мог оказаться интересным багом, его подробности решено было выяснить. А пока известна лишь такая информация:
Как обнаружили
- Запустили браузер
- Переключили в режим инкогнито (например, в Chrome надо нажать комбинацию клавиш Ctrl+Shift+N)
- Ввели в адресную строку URL сайта - https://example.com
В результате сайт открылся в искажённом виде, притом что на те же действия в стандартном (не инкогнито) режиме сайт открывается и выглядит как надо. Краткое исследование по горячим следам показало следующее:
- Эффект наблюдается только при первом входе
- Обновление страницы (например Ctrl+F5) приводит вид сайта к нормальному
То есть оказалось, что любой пользователь, который боится за собой слежки в интернете и поэтому включает режим невидимки (инкогнито), с первого же захода на сайт видит "поплывшую" страницу и скорее всего покинет сайт. Ведь он вряд ли догадается, что страницу можно обновить и всё само собой исправится, но правда до следующего невидимочного захода на сайт.
Исследование html-кода страницы показало:
- Все абсолютные ссылки имеют вид http://example.com/...
- После обновления страницы они принимают правильный вид https://example.com/...
Последствие понятно
- Документ открывался по защищённому протоколу HTTPS, но в первой же отгруженной сайтом html-разметке абсолютные ссылки почему-то указывают на стили и картинки через протокол HTTP. Браузер тут же блокирует попытки подгрузить к ресурсам, полученным из защищённого канала, любые другие ресурсы из незащищённых каналов.
Причина непонятна
- Почему первый заход невидимки сайт видит так, словно человек зашёл по незащищённому протоколу?
Те же действия попробовали на паре других сайтов - ничего не замечено, всё нормально. Значит дело в каких-то внутренних настройках аудированного сайта.