Дмитрий DarkByte Москин

Мой блог, да.
logo

Почему интернет-магазину JD.com плевать на своих клиентов?

Опубликовано 01.02.2016 автором Дмитрий Москин
Очень забавно со стороны выглядят действия интернет-магазина JD.com. Они потратили несколько десятков миллионов на акции, которые, казалось бы, были направлены на увеличение их клиентской базы. Но не потратили и цента на защиту от накрутки, поэтому вместо шквала новых клиентов получили шквал автоматических регистраций. Спустя неделю бомбардировки автоматическими регистрациями и тысячами заказов на одни и те же ФИО и адреса они таки зашевелились. Заблокировали выдачу купонов новым пользователям, и в качестве профилактики забрали купоны у тех, кто их получил ранее, причём у всех. В результате получили шквал негодования от новых пользователей, ведь баннер при регистрации обещал бесплатные $500, а после регистрации не давали ничего.



Но ладно защита от накрутки, они ведь и сайт магазина выкатили такой, будто его пара студентов за неделю в качестве приложения к дипломной работе сделали. Зачем-то в интерфейсе были предусмотрены кнопки для сортировки и фильтров по списку товаров, но они ничего не делали. Интерфейс отображения информации о заказах позволял смотреть чужие данные, а интерфейс чтения сообщений не позволял хоть сколько-нибудь комфортно общаться с продавцами (совершенно никакой индикации о получении новых сообщений), зато в нём можно читать чужие сообщения. Как порядочный человек, я, конечно же, сразу попытался сообщить об этом разработчикам, но об этом чуть позже.


Кроме проблем с интерфейсом, магазин испытывал проблемы с нагрузкой. Чтобы загрузить страницу полностью, нужно было несколько раз нажать F5, а без полной загрузки не подгружались скрипты, которые загружали цену товара и его наличие на складе на страницу. Лично я не покупал в их магазине смартфонов, но те, кто решился, столкнулись с тем, что большую часть заказов разворачивали на таможне. JD обязал продавцов указывать честную стоимость и название продукта, и китайцы лепили в декларацию полное название смартфона и ещё немного технических характеристик (сколько влезало в поле ввода). Таможенники не могли найти соответствующей нотификации для товара и разворачивали его.

А некоторым просто ничего не отправили. И ничего не ответили. И магазин и продавцы молчали. И если при оплате через paypal у покупателя была возможность вернуть свои деньги, то при оплате через ЯД или QIWI у пользователей такой возможности не было. Спустя какое то время магазин таки понял, что если добавить активацию аккаунта по мобильному номеру, то можно пресечь большую часть автоматических регистраций. Но затем им показалось этого мало, и они обязали всех пользователей пройти активацию по номеру телефона. И даже тех, кто её уже прошёл при регистрации, правда второй раз тот же самый номер уже нельзя было использовать.

Единственное место, где на вопросы пользователей отвечали более-менее, была официальная группа JD ВКонтакте. Вот только все неугодные вопросы тщательно затирались, а их авторов блокировали. В итоге на стене оставался монолог представителя группы, который обещал, что всё будет хорошо. Кроме того, почти по любому вопросу представитель предлагал повторить вопрос в личные сообщения пользователю Пёс Джой (Официальный талисман, руководитель русскоязычной поддержки). Собственно ему, 17.11.15 я и сообщил о наличии уязвимости. Через несколько часов ВК уведомил, что сообщение прочитано, но ответа не последовало. Для надёжности продублировал сообщение на почту [email protected].



Казалось бы, чего страшного в том, что кто-то прочитает чужие сообщения, ведь они не очень удобные, и в них кроме «Где моя посылка?! ***» никто ничего не пишет. Но так уж получилось, что при оформлении заказа в интерфейсе русской версии сайта, надписи в форме адреса доставки были на русском, и не было никаких предупреждений о том, что вводить данные нужно транслитом. После того, как представитель магазина ВКонтакте подтвердил, что нужно было заполнять данные транслитом, народ бросился отправлять свои «правильные» адреса в личные сообщения продавцам. Впрочем часть продавцов нормально обработали и распечатали этикетки с адресом, но были и случаи чудесного получения посылки, на которой из читаемых данных был только почтовый индекс и номер телефона.



30.11.15 по почте пришёл ответ, мол давайте «нам сюда». Отлично, подумал я, раз ответили, значит теперь быстро исправят. Отправил описание уязвимости. Почти спустя месяц получил ответ «Мы можем увидеть id клиент в сообщении. Спасибо за предложение и просим прощения за задержку ответа.». Совершенно ничего не понял, вроде как они поняли проблему, но на всякий случай проверил, оказалось, что уязвимость по прежнему не исправлена. В ответ уточнил сроки исправления уязвимости и полагается ли какое вознаграждение. Нужно отметить, что исправление уязвимости должно было занять у разработчика не больше одной минуты, ведь весь необходимый функционал уже был предусмотрен и даже частично работал. В запросе на загрузку истории сообщений кроме идентификатора сообщения передаётся так же идентификатор инициатора диалога и хеш от него. Если хеш совпадает, то вместе с сообщением подгружается информация о профиле (фамилия, имя, ник, email, IP при регистрации, пол, страна), а если не совпадёт, то только идентификатора пользователя вида «ept_», по которому можно отследить все сообщение от него.

На следующий день продублировал информацию хабрапользователю JD_ru, как мне порекомендовали в комментариях на хабре. Ответ на это сообщение не получил до сих пор. В новом году (точнее через 30 дней), 20.01.16 мне прислали сообщение с благодарностью за сообщённую уязвимость и скидочный купон на $5 в их магазин. На всякий случай переспросил, действительно ли они оценивают уязвимость раскрытия персональных данных своих клиентов в $5 в фантиковом эквиваленте? Через 9 дней получил ответ:



Почему же выданный мне купон я посчитал не более, чем фантиком? Потому что его выдали не мне. Они просто активировали купон вида JDxxxx, где xxxx — 4 цифры. И им может воспользоваться любой, кто угадает эти цифры. Например, угадает, что цифры 2350 дают скидку $10 при заказе от $50, а 1871 скинут аж $52 от заказе от 100, ну и цифры 2427 предоставят скидку 65 при заказе от $300. Возможно эти купоны тоже кому то за что-то выдали, но сейчас ими может воспользоваться любой желающий, правда не больше одного раза.

И всё бы ничего, но недавно JD в своей группе ВКонтакте выложили анонс очередного акционного товара. И если до этого они по большей части рекламировали товары из коллекции JD, где можно встретить более-менее качественные товары, то на этот раз они предлагали купить откровенную подделку. Типичный китайский повербанк на 5Ач, ёмкость которого заявлялась 20000мАч. Ну а так как меня уже обманули с данным повербанком, то я сразу же выложил доказательства того, что его ёмкость фейковая. Чтобы бы сделал нормальный интернет-магазин в таком случае? Заблокировал товар до разбирательств, почитал отзывы других покупателей данного товара, вернули деньги всем обманутым клиентам? Как поступил JD в данной ситуации? Как и обычно, сначала игнорировал любые упоминания того, что это фейк, а потом начал удалять любые упоминания об этом.



Как сказал один пользователь — JD использует клиентов в качестве тестировщиков, а за это платит им различными акциями. Но не совсем понятно, зачем так делать, ведь тестировщикам заплатить дешевле выйдет, а после них меньше клиентов уйдёт из магазина недовольными. JD — очень крупная компания, у них сотни доменов и серверов. На первый взгляд, у них очень много проблем с безопасностью, и утечка персональных данных небольшой части пользователей — это не очень страшная угроза для них. Взять хотя бы то, что для пользователей из US и UK они предоставляют возможность ввести данные от карты на своём сайте, и до недавнего времени они передавались по сети без https.

Кстати, статья не угодила модераторам хабра, поэтому всего лишь через пять минут после публикации, она была выпилена вместе с моим аккаунтом, хотя sohabr успел. Спасибо ему за это, не пришлось ковыряться в кэше браузера, в поисках статьи. С другой стороны иного я не ожидал, текст действительно написан в стиле жалобы.