Заметки · Проверьте своё приложение
Три проверки, которые можно сделать в своём приложении.
Каждая идёт от настоящей проблемы, найденной в приложении, собранном с ИИ. Делайте их в своём приложении, с аккаунтами, заведёнными для этого, а всё, что касается денег, — в тестовом режиме, чтобы ни с одного настоящего клиента не списали деньги и никому не ушло письмо.
Две минуты
Может ли один аккаунт открыть чужие данные?
В демонстрационном магазине любой новый аккаунт мог прочитать имена и адреса гостей по номеру заказа.
Вся история этой проблемы →- Заведите два аккаунта, A и B. Под A создайте что-то личное: заказ, счёт, бронирование. Под B откройте это по адресу или номеру. Должен быть отказ.
- Теперь сделайте то же самое с записью без владельца, например с заказом, сделанным без входа, или с черновиком. Откройте её под B, а потом ещё раз без входа.
- Если номера в адресе идут подряд, попробуйте несколько соседних с вашим.
- Если что-то открылось, задайте тому, кто собирал приложение, один вопрос: «Какие функции или серверные маршруты читают данные с полными правами и что делает каждый из них, когда поле владельца пустое?»
Пять минут
Может ли возврат быть больше заказа?
В том же магазине на заказ за €29,99 можно было записать возврат €500, и покупателю приходило об этом письмо.
Вся история этой проблемы →- Найдите каждое место, где записывается возврат: страницу в админке, кнопку «mark as refunded», обработчик события Stripe
charge.refunded, автоматизацию, которая записывает возвраты в таблицу. - Введите сумму больше заказа. Её отклоняют ещё до сохранения или только сообщением на странице?
- Сделайте по одному заказу два частичных возврата, которые вместе превышают заплаченное.
- Откройте форму возврата в двух вкладках и отправьте обе одновременно.
- После каждой попытки посмотрите на три вещи: заказ, сумму возвратов за месяц и письмо, которое получил покупатель.
Около часа
Совпадает ли тариф в приложении со Stripe?
В демонстрационном портале подаренный тариф, приостановка, передача и незавершённое удаление оставляли карту платить дальше.
Вся история этой проблемы →- Выпишите все способы, которыми в вашем приложении может поменяться тариф, кроме покупки и отмены. Вспомните админку, подаренный тариф, купон, приостановку или блокировку, передачу аккаунта другому человеку, его удаление и всё, что может сделать ваша поддержка.
- В тестовом режиме сделайте каждое из них с аккаунтом, который платит. Потом откройте этого клиента в кабинете Stripe. Если ваше приложение говорит Free, приостановлен или удалён, а Stripe всё ещё показывает дату следующего платежа, с этой карты спишут деньги.
- Чтобы увидеть само продление, не дожидаясь конца месяца, используйте тестовые часы Stripe (test clocks): они переводят тестовую подписку вперёд во времени.
- Попробуйте уйти как клиент в каждом состоянии: когда аккаунт приостановлен, сразу после передачи и когда аккаунт больше, чем разрешает ваш бесплатный тариф. Может ли клиент отменить тариф в приложении? Даёт ли это сделать страница оплаты Stripe?
- Если код писал кто-то другой, задайте ему один вопрос: «Перечислите все места, где меняется тариф, и для каждого скажите, что происходит с подпиской Stripe». Если хоть где-то ответ вроде «ничего», это и есть дыра.
Что-то прошло?
Напишите, что нашли, или пришлите ссылку на код. Отвечаю по почте, звонок не нужен. Эти три — только то, что можно проверить вручную; проверка проходит каждую роль и каждый путь.