Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль

Пост ориентирован на программистов. Но и простому человеку, тем более который имеет свой бизнес и хочет выйти в интернет и продавать там, он пригодится для ознакомления как наглядное пособие тому, что заказывать разработку сайта лучше стоит у дорогих, но опытных разработчиков, нежели на каком нибудь сайте фрилансеров у школьников за 10к рублей.


Сейчас я Вам покажу как я купил кондиционер всего за 1 рубль. Поехали.
Заходим на сайт

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Отлично. Скорей всего его нет в наличии. Иногда ставят цену 0. Но такой подход говорит, что у сайта нет нормальной cms или есть, но разработчик тупой. Поэтому манагеру пришлось выставить цену 1 рубль, а не отметить, что его нет в наличии. Сам факт - надо бы попробовать купить. Кнопки нет. Окай. Идем на страницу товара, который есть в наличии.
Например вот этот.

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Отлично. Смотрим события на кнопке "купить".

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Копируем код.

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Не плохо. Понятно что за что отвечает. Осталось только подставить данные с нужной нам страницы. В итоге получаем это:

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

ID я взял с кнопки "запросить цену". Логично же, что оператору на почту должена упасть инфа о выбранном мною товаре. А значит через эту кнопку передается ID.

Вставляем код в консоль и исполняем. И получаем результат true!

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Неожиданно. Ну окай. В корзине - так в корзине. Гоу покупать товар.

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост
Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Все.
Компании повезло - у них нет подключенных платежных систем. В противном случае, если бы они были - я бы оплатил заказ в 1 рубль и на основании ЗоЗПП они обязаны были бы мне его привезти, т.к. товар я уже оплатил. Разумеется они начали бы говниться, вернули бы мне 1 рубль, я пошел бы в суд и через месяцев 4 я бы получил товар. Как раз к лету =)

Для тех кто не в курсе - почитайте отличный пост про подобные ситуации.
http://pikabu.ru/story/itogi_po_sluchayu_s_yeldorado_4151679


Что хочется сказать всем web разработчикам:
Господа. Я на примере Вам показал как я бы за 2 минуты обзавелся бы новым кондеем в случае рабочий paysystem.

Факт есть факт - из-за безответственности программиста компания могла бы потерпеть ущерб в размере ~92к рублей (инфа о цене взята с яндек маркета).
Будте внимательны, и делайте нормальные сайты!


З.Ы. Через минут 10, пока я писал пост, позвонил манагер =) Разговор можно послушать здесь.


З.Ы.З.Ы. Не рекламы ради, а ради фана скидываю логотип этого сайта.

Не доверяйте данным, полученным от клиента или как я купил кондиционер за 1 рубль Хакеры, Программист, Интернет-магазин, Длиннопост

Согласен с лозунгом - я сравнил и выбрал Вас =)

6
Автор поста оценил этот комментарий

Ну, лень или недоработка программиста или менеджеров - это, конечно, нужно чинить.

А вот вы не боитесь что ваши действия могут быть расценены как взлом? Ведь само CMS вроде как тебе не позволяло добавить товар в корзину без манипуляций с кодом?

Да-да-да, там должна быть защита от подобных вещей и серверная часть по определению не должна доверять данным приходящим от клиентской части (т.е. браузера посетителя).

Но практика показывает, что даже если вы сообщите о такой ошибке то добрые дяденьки могут настучать по голове вместо благодарности, ибо "не просили проводить аудит безопасности".

раскрыть ветку
8
Автор поста оценил этот комментарий

Они бы доказали что ты мошенническими действиями получил возможность добавить товар в корзину.

В твоем примере который ты привел про оферту - есть кнопка купить, а у тебя тут на сайте нету. Значит законной сделкой это не назовешь.

раскрыть ветку
5
Автор поста оценил этот комментарий

Автор имеет склонность к мошенническим операциям!

ЗоЗПП защищает добросовестных покупателей, а конкретная ситуация подстроена. Возможности заказать за один рубль не было на сайте, и автор своей "башковитостью" устроил такую возможность, так что насчет суда и кондея к лету это большой еще вопрос.

раскрыть ветку
6
Автор поста оценил этот комментарий
Факт есть факт - из-за безответственности программиста компания могла бы потерпеть ущерб в размере ~92к рублей (инфа о цене взята с яндек маркета).

В случае разбирательства в суде, выяснилось бы, что вы делали заказ не штатными средствами, а с использованием уязвимости. Отсутствие кнопки "купить" тому подтверждение.


Также

УК РФ, Статья 159.6. Мошенничество в сфере компьютерной информации

Мошенничество в сфере компьютерной информации, то есть хищение чужого имущества или приобретение права на чужое имущество путем ввода, удаления, блокирования, модификации компьютерной информации либо иного вмешательства в функционирование средств хранения, обработки или передачи компьютерной информации или информационно-телекоммуникационных сетей

В случае с "Эльдорадо" кнопка "купить" была

В вашем случае вы предприняли действия для обхода отсутствия этой кнопки.


ИМХО, вам повезло, что вы не оплатили и не пошли судиться.


И да, программеры недоглядели, все данные надо проверять, это их косяк.

раскрыть ветку
1
Автор поста оценил этот комментарий

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

раскрыть ветку