выношу из комментов обсуждения у Арканоида своё резюме:
на сайте Мегафона сложилась комбинация нескольких факторов, которые _совместно_ привели к утечке конфиденциальной информации. Каждый отдельный фактор существовал (или, по крайней мере, мог существовать) гораздо дольше, но в отсутствие остальных не приводил к фатальным последствиям.
Возможно, такое стечение обстоятельств было не единичным случаем, а время от времени повторялось, на результат это не особо влияет.
Итак:
1. Существование страниц статуса отправки SMS, содержащих тексты и номера телефонов, с уникальными адресами.
2. Возможность неавторизованного доступа к этим страницам.
3. Утечка адресов этих страниц в поисковые системы.
4. Отсутствие запрета на индексирование этих страниц.
При этом обвинять поисковые системы в том, что они сделали публично доступной информацию, которая и так была публично доступна — значит выставлять себя идиотами.
Под катом, если кому интересно, мысли о том, как этого можно было бы избежать.
1. По возможности не передавать чувствительную информацию в адресе страницы. Потому что именно эти адреса записываются в логи, запоминаются в истории браузера, записываются в закладки, индексируются поисковыми системами и прочая, и прочая. К чувствительной информации относятся как сами данные, так и идентификаторы сессий, по которым сервер может выдать данные.
Используй Мегафон один общий адрес для страницы статуса (с определением конкретной сессии другими средствами) — информация бы не утекла.
2. Если уж приспичило делать уникальные ссылки, которые можно запомнить, то для доступа к самим данным следует использовать дополнительные средства аутентификации.
Мегафон мог бы при первоначальной выдаче клиенту страницы статуса использовать для этого hidden-поля в форме, а при последующих заходах спрашивать, например, номер телефона, на который отправлялось сообщение. Поисковые системы, не знающие номера, и не умеющие отправлять POST-запросы, не получили бы доступа к текстам.
3. Строить безопасность на секретности адресов страниц — исключительно глупо. Этот способ можно использовать в качестве дополнения к другим, но полагаться лишь на него, очевидно, нельзя. Источников утечки дофига, и все не предусмотришь. Счётчики, браузерные плагины, логи веб-серверов, не говоря уже про хакеров, вирусы и трояны. В конце концов, нехороший человек, каким-то образом узнавший адрес, может вручную добавить его в поисковую систему.
4. Запрет на индексирование. Это тоже слабенький метод, он помогает только от честных поисковых роботов, но и забывать про него не стоит. Для пущей надёжности можно дополнительно обложить чувствительную информацию на страницах тэгами NOINDEX (а ссылки — NOFOLLOW), а также отсеивать поисковые роботы на уровне веб-сервера по User-Agent’у. Но в целом конфиденциальная информация вообще не должна попадать в открытый доступ.
Вот как-то так.
Оригинал этой записи. Комментировать можно тут или там.
no subject
no subject
no subject
принял ислампопил чайкупроиндексировал собственные исходники. =)no subject
no subject
no subject