Комментарии 51
Согласен. Топик я опубликовал, поскольку посчитал этот случай хорошим примером для разработчика «как делать не надо». Согласитесь, ведь это может быть неочевидно для новичка.
Да. Только вот топик я отправил в песочницу 5го августа (пруф в гугле):



Инвайт получил 8го августа, когда уже был в горах Кавказа без связи :-)
Просьба не воспринимать это как отмазки.
Имхо, топик опубликовали вы ни сколько для того, что бы научить разработчиков (ибо сами не до конца понимаете как защищаться от атак вида CSRF), сколько просто попиариться на бренде мэйл.ру.
Может автор и не до конца понимает (в чем я лично не уверен), но он не поленился разобраться как именно уязвимость была использована, написать об этом в поддержку и предупредить хабрапользователей.
Будем надеятся, проблему исправят быстро. Копию отправлю в Mail.ru, делюсь с уважаемым сообществом, т.к. уязвимость уже эксплуатируется.

Вот только приличные люди сначала отправляют сообщение в саппорт, а потом, через некоторое время делятся с общественностью. А тут автор ведёт себя как институтка.
Вот тут я с вами согласен.

Но есть одно «но» — уязвимость уже была известна нехорошим людям и активно использовалась. В этом случае я считаю допустимым одновременно написать в саппорт и обнародовать информацию — все же лучше, если о проблеме будут знать не только нехорошие люди.

Хотя на месте автора я все-таки подождал бы неделю.
Более старый вариант (с неточным предположением о происхождении уязвимости, но аналогичными скриншотами и ID письма) был отправлен саппорту 5го августа, в день публикации в «песочницу». Пост появился в «Песочнице», похоже, 8го августа, и был мгновенно снят оттуда и перемещён в черновики. Вновь он он появился лишь сегодня, 21 августа. Так что неделя, прошу простить и засчитать это с натяжкой, выждана. Обнаружил, а когда доковырял, оставалось очень мало времени до выезда.
Почему информации об этом нет в посте, зато есть слова «Копию отправлю в Mail.ru»? Хорошо если так, но выглядит как отмазка, чесслово.
Моё мнение совершенно противоположно — я не считаю допустимым обнародовать информацию о дырах до тех пор, пока их не закроют. Это — простейшая этика (это ещё и незаконно, к тому же).
Что касается саппорта — то в любых крупных компаниях саппорту такие сведения передавать по меньшей мере глупо и нужно только для отмазки, — я, мол, предупрежал. Достаточно лишь пять минут погуглить для того, чтобы найти контакты человека (и не одного), занимающего более высокое положение и отправить инфу о дырах ему. Саппорт — он для другого нужен…

В общем случае такие люди (как автор этого поста) выглядят как жалкие журналюги, слетающиеся как мухи на говно на любые псевдосенсации ради самопиара и другого профита. Гнустно всё это и противно.

Впрочем, спорить не буду — у каждого своё мнение, я своё высказал.
Мне кажется вы ошибаетесь в трех вещах.

Во-первых, пока информацию о дырках не обнародуют никто ничего не закроет (да и потом не факт). Посмотрите в мой топик, я могу указать точные даты обращения в конкретные компании. Никто ничего так и не сделал. В Mail.Ru я писал письмо двум людям, среди которых Денис Аникин. И было это уже почти 2 месяца назад. И письмо это они получили и обещали исправить в ближайшее время.

Во-вторых, не так и просто найти контакты нужных людей и часто приходится писать в саппорт. Если бы я в то время не работал в Mail.Ru, я бы не смог на них выйти. Вот примеры из личного опыта. В Яндекс я написал письмо через форму обратной связи и получил ответ через 3 дня. В Рамблере я не смог найти никаких контактов, кроме support@rambler.ru и я не уверен, что мое письмо они получили. И если не получили — сами виноваты. Все-таки это их задача сделать так, чтобы баг-репорты от пользователей до них дошли.

В-третьих, нет ничего незаконного в обнародовании проблем с безопасностью. Особенно с учетом того, что эта уязвимость была использована против автора.
Посмотрел топик. Грустно это, но, похоже, что вы правы…
Спасибо за интересный топик и за развёрнутый ответ — есть над чем подумать =)
Может быть Вы нам расскажете, как защищаться от CSRF-атак? :)
>Всегда стоит соблюдать RFC, согласно которому GET-запросы не должны менять состояние сервера

что-то слабо верится, что такое написано в RFC
>Всегда стоит соблюдать RFC, согласно которому GET-запросы не должны менять состояние сервера
Тем не менее, куда удобней сохранять историю посещений на сервере при GET-запросах (если такая нужна, напрмер хранить «недавно посещенные товары» в сесси интернет магазина). Это ли не изменение состояния сервера? Слать ради этого еще 1 POST-запрос — никому не нужный оврхед.
Понятие «не менять состояние» выше не корректное.
В оригинале — «не следует делать других действий, отличных от получения данных».

Отслеживание недавно-посещённых это уже побочное от просто получения.

А вот удаление любимых — это уже откровенное действие, которое должно быть в POST как минимум.
>что-то слабо верится, что такое написано в RFC

С каких пор такие вещи стали предметом веры? RFC открыты и доступны всем желающим — берете и смотрите.
Get — по определению «получить» ресурс, поэтому таки да, не должен, даже если бы явно не было написано.
Это к стати говоря одна из CSRF из моего списка. Только я в песочницу написал 11го числа и обнародовать их собираюсь 23го
Мораль вроде должна быть не совсем такова, ведь использование POST хоть и затрудняет использование уязвимости (так как здесь, через картинку, было бы не воспользоваться), однако уязвимость не устраняет, воспользоваться ей можно все-равно.
А как, подскажите…
Я проверил перед отправкой текста, iframe Mail.ru вырезает. Проверено на следующем фрагменте кода (с использованием htmlMimeMail5):

<?php
require_once 'header.php';

$mail = new htmlMimeMail5();
$mail->setFrom("test user <$support_email>");
$mail->setSubject('test');
$mail->setHTMLCharset('UTF-8');
$mail->setHeadCharset('UTF-8');
$mail->setTextCharset('UTF-8');
$mail->setText('test test test not supported');
$mail->setHTML('test test test ');
$mail->send(array('test@example.com'));

?>
Парсер здешний тоже iframe вырезает, простите, в html части )
Конечно, само собой, я понимаю, что можно разместить iframe на массе сайтов, защититься от этого можно разве что токенами и проверкой рефереров, но, думаю, вы согласитесь, что оправка письма при посещении стороннего сайта по ссылке и при простом открытии письма злоумышленника — уязвимости совсем разного порядка.
Да, я имел ввиду iframe на другом сайте. Токены, да. Уязвимости разного порядка, но одной природы, одного типа. Так что предлагать post как метод исправления уязвимости — некорректно.
Спасибо за баг-репорт!
Уязвимость устраним в самое ближайшее время.

Денис Аникин, технический руководитель Почты Mail.Ru
Знаем мы ваше скоро. Вам уже почти 2 месяца назад писали о этих уязвимостях (http://habrahabr.ru/blogs/infosecurity/126409/), по словам товарища Graphite. Вы не начинаете шевелиться пока уязвимости не начинают использовать?
Хотелось бы задать неудобный вопрос.

Денис, то есть сообщение о проблеме поступило в саппорт от пользователя 5го августа? Но фактически на проблему обратили внимание только сейчас?
Возможно, речь идет о различных уязвимостях. Можете дать номер обращения в сапорт? Лучше в почту: anikin@corp.mail.ru. Я обязательно выясню причину столь долгой реакции с нашей стороны.
Это не ко мне вопрос, а к автору. Я ему пару дней назад написал в личку с просьбой предоставить номер тикета, но что-то он пропал. А жаль, действительно интересно, какая же из черепашек говорит альтернативную истину.
А спам когда перестанете рассылать? Мне в день приходит 5-10 писем из как бы МоегоМира, где со мной «хотят познакомится». Как-то несолидно, когда спамит компания предоставляющая услуги почты
+1
10 писем ежедневно

при этом ICQ Lite не конектится к серверу, а в Mail.ru агенте мэйлрушный жабер неотключаем

лучи поноса компании мэйл.ру

неруским не стоит лезть в технологии, шли бы лучше пивом торговать
Мы следим за жалобами на спам от Моего Мира и постоянно совершенствуем систему уведомлений. Но если все же вы получаете не нужные вам письма, то специально для этого есть кнопка «Это спам». Если вы нажмете на нее на сообщении от Моего Мира, то они перестанут приходить вам во Входящие.
Кстати, подавляющее большинство социальных сетей уведомляют о различных событиях в профиле пользователя, причем, зачастую гораздо более назойливо чем Мой Мир.
> то специально для этого есть кнопка «Это спам»

Я не пользуюсь вэб-интерфейсом, удивительно, да?

> Кстати, подавляющее большинство социальных сетей уведомляют о различных событиях в профиле пользователя

Если я пользователь этой сети — да и это нормально. Как и то, что я сам выбираю какие сообщения получать. В случае с «МоимМиром» — я там НИ РАЗУ не был. И не собираюсь. Видимо по этой причине, ваш спам-отдел и засыпает «как бы» уведомлениями о дружбе (естественно, приглашения приходят только от девушек, типа маркетологи шарят). Это реально надоедает. Карма вашей компании для меня, и большинства кого я знаю — с каждым днем все ниже плинтуса. Продолжайте в том же духе
а когда перестанете нормальные письма в спам отправлять?
мне уже надоело на форуме всем объяснять, что в mail.ru ящик не надо заводить ;)
Можете перенаправить пример такого письма мне в ящик: anikin@corp.mail.ru?
Именно перенаправить, а не переслать — кликаете на письмо, далее «Еще» и потом «Перенаправить».
Мне, к сожалению, пришлось из-за этого уйти с mail.ru примерно 10 лет назад и всё это время я продолжаю убеждаться, что не ошибся.
Мои пользователи на форуме постоянно жалуются на то, что к ним не ходит почта и в подавляющем большинстве ящики у несчастных – на mail.ru.
Письма переслать, к сожалению, не могу.
*facepalm*
Глядя на такие фейлы от гигантов недоумеваешь, почему ты вылизываешь код и защищаешь его от всего чего только можно, а они — нет.
И доверяй после этого свои данные сторонним сервисам.
Ну да, покупай сервер и поднимай все нужные сервисы на нем самостоятельно — вариант) Но уж больно, блин, затратный и хлопотный ((
Домен $7-10 в год.
Для mail, jabber, irc, proxy/vpn хватит vps за $7-10/month. И еще останутся ресурсы.
Если оплатить сразу за несколько лет на хорошем хостинге, то еще дешевле.
Если это дорого, значит для вас эти данные не важны и защищать их вообще не имеет смысла.
Главное лучше сразу забыть и не пытаться использовать exUSSR хостинг.
Домен у меня есть.

VPS за $10/мес?
кхм. это где такое?
Я просто хостю всё в Украине, у нас тут локальный трафик сильно хорошо бегает. И у нас тут таких цен нету. На shared только.
Надо будет копнуть, что там на западе предлагают…
Можете посоветвать?
virpus.com
vpslink.com
А вообще в гугл в помощь, их очень много.
Просто нужно понимать что за такие деньги будет заметный oversell (сразу или чуть позже), но под почту и прочее это не играет особой роли как правило.
Под более менее посещаемый сайт такой vps конечно использовать проблематично.
Ну, много-то много, но хотелось бы все же по рекоммендации, а то мало-ли)
Спасибо за ссылки
Поверьте, мы уделяем очень много времени и внимания безопасности на наших сервисах. Но в виду огромной аудитории, вероятность обнаружения той или иной дыры гораздо выше, чем на многих других проектах.
да уж, конечно позор mail.ru такие косяки допускать. Так то конечно через get можно только отдавать данные
по умолчанию веб-сервер глотает POST параметры с GET запросом, что облегчает реверс-инжиниринг веб-API.
Картинки в посте умерли.
Можно перезалить? Например, на imgur.com или куда вам больше нравится.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.