Сейчас в рунете широко обсуждается появление в открытом доступе СМС и других данных, которые не должны были стать публичными. Вокруг этой темы возникла даже легкая паника. Чтобы в дальнейшем не происходило подобных вещей, хочу рассказать владельцам сайтов и вебмастерам, что нужно сделать и на что обратить внимание.
Прежде всего личную информацию посетителей сайта необходимо защитить, например, закрыть паролем. Если же такая информация никак не защищена, она запросто может стать доступна всем пользователям сети. Для этого достаточно оставить где-нибудь в интернете ссылку на страницу пользователя — хоть на страницу заказа, хоть на страницу регистрации.
Вторая важная вещь — необходимо запретить поисковым роботам индексировать страницы сайтов с информацией, которая не должна стать публичной. Для этого существует файл robots.txt. Это текстовый файл, который предназначен для роботов поисковых систем. В этом файле вебмастер может указать параметры индексирования своего сайта как для всех роботов сразу, так и для каждой поисковой системы по отдельности. То есть владелец сайта или вебмастер всегда может позаботиться о том, чтобы поисковые роботы обходили стороной страницы, содержимое которых не должно попасть в поисковые системы. Проверить, какие страницы сайта проиндексированы Яндексом, можно с помощью сервиса Яндекс.Вебмастер. В сервисе существует специальный инструмент для проверки корректности файла robots.txt — с помощью него можно проверить доступность страниц для индексации поисковым роботом Яндекса.
Чтобы все понимали, как данные попадают в поисковики, давайте проследим, что происходит с веб-страницей от момента ее создания до попадания в результаты поиска.
Итак, страница появилась на сайте. Не важно, статический ли это html или динамически созданная серверным приложением страница. Важно, что у нее есть текстовое содержимое, которое могут читать пользователи и индексировать поисковые системы.
Разместив в интернете свою страницу, вебмастер ждет посетителей. Как он может рассказать людям о ней? Конечно, он отправит запрос на индексирование страницы поисковым системам. Возможно, отправит ссылку друзьям и знакомым, сократит ее и выложит в Твиттер, другие блоги и соцсети. Он может поставить ссылку на эту страницу и в других местах, уже известных поисковым системам, чтобы роботы быстрее ее нашли.
Итак, на страничку не зашел еще ни один живой человек, но про нее уже могут знать тысячи программ по всему интернету:
• поисковые системы, куда вебмастер отправил ссылку вручную;
• блог-платформы и сокращатели ссылок;
• поисковые системы, которые переиндексировали страницы с ссылками на эту (а зачастую это происходит очень быстро);
• всевозможные анализаторы и подписчики RSS (если на сайте есть RSS), причем не только через RSS сайта, где расположена страничка, но и через RSS блогов, агрегаторов, блогов агрегаторов, агрегаторов блогов, агрегаторов агрегаторов и так далее;
• компании-владельцы интернет-мессенджеров и провайдеры почтовых сервисов.
Если у странички стандартное имя, например, /admin или /login, ее быстро найдут всевозможные сканеры уязвимостей, которые постоянно обходят интернет. Про нее могут знать интернет-провайдеры всех тех систем, которые мы перечислили выше, провайдер самого сайта и все провайдеры по пути. Не в последнюю очередь про нее могут знать сотрудники спецслужб, использующие системы СОРМ. Иначе говоря, к этому моменту про новую страницу знает уже половина «роботной» части мирового интернета.
И только теперь на страницу заходит первый пользователь. Например, сидя в интернет-кафе, человек кликнул по ссылке в Твиттере и перешел на страницу. Конечно, этот клик зафиксировал javascript системы статистики сайта — в данном случае Твиттера. Как правило, пользователь попадает на страницу через сервис сокращения ссылок, и переход осядет в логах этого сервиса. Дальше браузер открывает страницу и начинает загружать объекты — картинки, анимацию, скрипты, css, рекламу, коды счетчиков и систем статистики. Если в браузере установлен антифишинговый или антивирусный плагин (собственный есть почти во всех браузерах и почти везде включен, а некоторые антивирусные компании еще добавляют свой), он отправляет адрес посещенной страницы на проверку. В браузер могут быть встроены и другие плагины. Например, Яндекс.Бар или Google.Бар показывают ранг страницы, для чего передают ее адрес на сервер. Бывает так, что трафик пользователей в публичных местах пропускается через прокси-сервер — для защиты от атак, экономии IP-адресов или ускорения загрузки страниц. В этом случае все указанные взаимодействия пройдут через прокси-сервер, и он тоже узнает о странице.
Если на страничке есть картинки или flash-объекты с других ресурсов, то о странице будут знать все эти ресурсы. При наличии на странице iframe о ней будет известно системе показа рекламы или сервисам других систем, загруженных через iframe. Если вебмастер использовал скрипты из внешней библиотеки, счетчики и системы сбора статистики, то о новой страничке будут знать все эти сервисы и их провайдеры. Данные получат прокси-серверы и серверы антивирусной и антифишинговой систем, встроенных в браузер. А также юноша, сидящий в кафе за соседним столиком и недавно прочитавший в молодежном журнале, как просматривать чужой трафик в публичных wifi-сетях.
Итак, теперь можно сказать, что почти весь мировой интернет знает про существование этой ссылки. Дальше информация о таких ссылках анализируется и проверяется, сравнивается и обсчитывается, агрегируется и консолидируется многими-многими системами. Происходит это довольно быстро. Бывает — всего за несколько секунд. В конечном итоге многие такие ссылки так или иначе становятся известными поисковым системам.
В этом месте хочу еще раз обратить внимание: поисковая система получает из разных источников только ссылки, а не содержимое страницы. Сколько может быть этих ссылок? Очень много. Например, еще в 2008 году Google сообщил, что их поисковой машине известно более одного триллиона (это тысяча миллиардов) уникальных ссылок. Разумеется, с той поры мировой интернет стал еще больше. И это при том, что индексируются только страницы, которые доступны всем пользователям.
Все ссылки поисковая система пропускает через фильтры, чтобы определить, нужно индексировать конкретную ссылку или нет. Некоторые ссылки отфильтровываются. Из полученного списка формируется очередь для обхода поисковым роботом. Порядок обхода может быть разным, он зависит от многих факторов. Важно, что робот старается отобрать и проиндексировать в первую очередь самые востребованные ссылки.
Дальше система управления поисковым роботом идет по списку ссылок и готовится индексировать содержимое страниц. Но прежде чем поисковый робот обращается к конкретной странице сайта, он обязательно проверяет файл robots.txt. И если владелец сайта не желает, чтобы новая страница индексировалась поисковой системой, он может попросить поискового робота этого не делать. И поисковый робот не будет этого делать. Конечно, злоумышленники, желающие украсть важный файл, не обратят внимание на содержимое robots.txt, но все крупные поисковые системы в обязательном порядке выполняют директивы этого файла.
Только если поисковый робот убедился, что robots.txt не запрещает индексирование странички, он будет ее индексировать. Это — единственный путь, по которому содержимое страницы попадает в поисковую систему. Другого способа нет.
Когда робот получил контент страницы, он снова применяет фильтры — отсекает мусор и спам. После того, как страницы отфильтрованы, можно приступать к ранжированию. Все страницы, доступные поисковой системе на этом этапе, могут появиться в результатах поиска. Таким образом, в поиске находится всё, что открыто всем и не запрещено вебмастером.
Владимир Иванов, информационная безопасность Яндекса