Pull to refresh

Comments 29

Вот он, незамутненный, рафинированный пример программиста, кодящего за еду.

Даже не за еду: он же не сделал заказ.

Тут уровень выше — кодить за мысль о еде.
Следующая ступень:
мыслить о коде за мысль о еде…

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

Додо позволяет вводить промо коды только с подарочной пиццой.

Баг в том, что они не отслеживают IP и не добавили хотя бы минимальной капчи.
Не решит проблему, просто сделает автоматизацию атаки сложнее.
Было дело, заказал несколько раз по «вечному» промо-коду stickermule несколько наклеек, используя промо-код из ссылки после первой покупки. Его можно было применять многократно, суммируя с другими акциями, за счёт чего сумма заказа иногда становилась отрицательной.
image
После четвёртого раза мне стало стыдно и я отписался в техподдержку. Мне тоже ничего не ответили.
Но потом я заметил, что больше оно так не работает.

А вообще, будьте честными.
UFO just landed and posted this here
В случае оплаты отрицательного заказа, было так же, как и с нулевым — оплачивать не требовалось и заказ сразу переходил в обработку. Полагаю, у stickermule есть легальные промо-коды, позволяющие оплатить всю сумму.
я мог бы запрограммировать заказ 1000 чесночных пицц из каждого магазина Papa John's по всей Великобритании
Возможно, отменили бы заказ и вернули деньги
Извините, а где тут уязвимость? Я так понял тут просто обычная автоматизация прохождения опроса. Причём настолько элементарная, что обычно даётся в качестве тестового задания тестировщикам.
Нет простейших способов отфильтровать уже прошедших — капча, валидация по IP, т.п.
Все эти способы только поднимают планку автоматизации чуть выше. Я вообще не могу придумать ни одного адекватного способа, который был делал автоматизацию невозможной.
Впрочем соглашусь, даже капча отсекла бы любопытных студентов, а люди, которые могут это обойти стали бы заморачиваться только искусства ради. А это маловероятно для временной акции.
Но и разработчиков/дизайнеров/менеджеров (или кто там это всё делал и придумывал?) тоже понимаю. Для создания таких ограничений тоже нужно больше компетенций и/или трудозатрат, что в конечном итоге поднимают стоимость и приводит к невозможности проведений этих акций. Ну и возможно они научились на этой истории чему-нибудь.
UFO just landed and posted this here
В работе с Вебом (Selenium) вместо time.sleep(1) рекомендую использовать wait.until(EC.visibility_of_element_located((By.ID, «Блаблавиджет»)))
Плюсую, всегда коробит от этих слипов в коде, на что они рассчитывают? Что каждая строка кода будет идеально вписываться в этот слип?

так можно зависнуть навсегда, не всё так просто с wait until

если изучать selenium и применять его то сначала ты прописываешь сколько максимально ждать загрузки элемента, например 50
wait = WebDriverWait(driver, 50)
wait.until(EC.visibility_of_element_located((By.ID, «login-logo»)))
UFO just landed and posted this here
UFO just landed and posted this here
Странно, что GUID никак не был привязан к кукам. Можно было хранить состояние опроса на сервере, увязав его с сессией. Очередной IDOR.
Куки почистить можно. Надо было просто хранить в БД список разосланных гуидов и с ним сверять. Видимо гуид в базу попадал после прохождения опроса уже.
В пападжонсе платежная инфа (номер карты, cvc) идет через сайт пападжонса, а не банка, вот где фейспалм) а они какие-то скидочные коды подбирают. Я бы вообще не советовал у них ничего заказывать.

Как вариант, можно было заглянуть в консоль разработчика, посмотреть какой API запрос шлёт фронт беку после заполнения опроса и не заморачиваться с Selenium.

Sign up to leave a comment.

Articles