Расскажу про необычную и немного забавную ситуацию, с которой столкнулся на днях на одном из проектов.
Случайно заметили, что если нажать несколько раз при пустой строке запроса для поиска на картинку с лупой, которая инициирует поиск, то вылезают странные результаты. На первый взгляд вообще не понятно, что именно. Сама выдача поиска выглядит как и у обычных поисковиков - заголовок и содержимое. Заголовок вида:
Имя файла.docx или .pdf - Почта Mail ru
В тексте под заголовком какая-то бессвязная ерунда. Нажимаешь на ссылку, попадаешь как-будто в почтовый ящик Mail Ru, только какой-то странный - что-то не загружено, при переходе по ссылкам требуется аутентификация.
Первое, о чём подумал - сайт взломали, залили левый код и используют его как прослойку для клона реального интерфейса почты 😱 Но почтовый интерфейс не особо походил на реальный. Иногда открывался интерфейс облака для файлов, иногда вообще какая-то белиберда.
Я немного поразбирался и понял, в чём тут дело. Если несколько раз запустить пустой поиск, то в него залетает фраза из всплывающей подсказки "поиск по сайту" и поиск реально осуществляется по этой фразе. На сайте есть форма, куда пользователи загружают свои файлы. Это востребованная функциональность, файлов загружают много.
Некоторые пользователи не умеют работать с файлами. Они открывают почтовые письма с вложениями, файлы в облаке, и вместо того, что сохранить сам файл, сохраняют html страничку. И эту html страничку загружают в форму, как обычный файл. Это похоже на то, как некоторые люди не умеют скачивать файлы с github. На эту тему существует множество инструкций и роликов (135к просмотров 😁).
В итоге на сайте сохраняются вместо docx или pdf файлов - html. А поисковой движок сайта индексирует их как свои родные и выводит в результатах поиска.
Получается, что по результатам поиска попадаешь в сохраненные когда-то и кем-то html странички разной степени давности и с разным содержимым. На страничках от Mail Ru есть фраза "поиск по сайту" и в выдаче в основном они. Движок сайта навешивает дополнительные параметры в url при переходе, так что сразу не понятно, что это за страничка открывается.
В итоге отлегло. Ничего особо делать не надо, никто сайт не взламывал. Удалил все html файлы из хранилища загруженных файлов. Они там не нужны и ценности не представляют. Получается, сразу два косяка сайта всплыли - загрузка файлов в формате, который не нужен и сайтовый поиск, который индексирует в том числе директорию upload с пользовательскими файлами, хотя нужды в этом нет, а файлов там много.
А обнаружилось всё это по случайному стечению обстоятельств из-за совпадения нескольких факторов. Не будь в этих html совпадений по фразе поиск по сайту, вряд ли они бы в реальном поиске на более осмысленные фразы всплыли, так как текста в них почти нет.