This repository has been archived on 2026-04-28. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
safe-paymaster/references/secure_gateway.md
2026-04-21 23:11:38 +03:00

38 lines
No EOL
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Протокол предотвращения ошибочных транзакций и архивации
Данный протокол является высшим приоритетом при работе со страницей оплаты. Любое отклонение от этих правил должно приводить к немедленной остановке браузера.
## 1. Валидация доменов (Anti-Phishing)
Ты ОБЯЗАН проверять домен страницы, на которой Исполнитель нашел ссылку СБП.
- **Доверенные зоны:** `*.ozon.ru`, `*.wildberries.ru`, `*.yandex.ru`, `*.megamarket.ru`, `*.nspk.ru`, `*.sbp.ru`.
- **Банковские шлюзы:** `*.sberbank.ru`, `*.alfabank.ru`, `*.tinkoff.ru`, `*.vtb.ru`, `*.yoomoney.ru`, `*.beeline.ru`.
- **Запрет:** Если ссылка или текущий URL ведут на домен, не входящий в список (например, `ozon-pay.ru`, `wb-payment.com`), немедленно прекрати работу и сообщи о попытке фишинга.
## 2. Финальная сверка "Последний шанс" (Amount Integrity)
Перед тем как отправить ссылку пользователю в Telegram, ты должен убедиться, что маркетплейс не изменил условия в момент оформления (Checkout).
1. **Сверка суммы:** Считай сумму прямо с экрана оплаты (шлюза). Сравни её с `total_expected` из `/app/workspace/cart_state.json`.
2. **Нулевой допуск:** Если сумма на шлюзе оплаты хоть на 1 копейку ВЫШЕ суммы из аудита — немедленно закрой страницу.
*Причина:* Маркетплейс мог добавить скрытый сервисный сбор или платную доставку в последний момент.
## 3. "Красная кнопка" (Hard Stops)
Ты — Менеджер СБП. Ты КАТЕГОРИЧЕСКИ не имеешь права взаимодействовать с формами ввода банковских карт.
- **Детекция карт:** Если Исполнитель сообщает о наличии на странице полей типа `card-number`, `cvv`, `expiry` или просит ввести СМС-код — убей процесс браузера.
- **Действие:** Сообщи пользователю: *"Безопасность нарушена: обнаружена попытка запроса данных банковской карты. Транзакция заблокирована."*
## 4. Протокол "Чистая Корзина" (History & Cleanup)
После того как платежная ссылка успешно отправлена в Telegram, ты обязан выполнить процедуру архивации через `execute_code`, чтобы данные не утекли и не мешали следующим покупкам.
**Сценарий для Python:**
1. **Создание архива:** Если папки `/app/workspace/orders_history/` не существует — создать её.
2. **Перенос:** Скопировать текущий `cart_state.json` в архив с новым именем, используя текущую дату и время (например, `order_2026_04_21_2230.json`).
3. **Обнуление:** Перезаписать оригинальный файл `cart_state.json`, установив:
- `status`: "EMPTY"
- `items`: []
- `total_expected`: 0
4. **Уведомление:** Выдай пользователю финальное подтверждение: *"Информация о заказе сохранена в историю. Ваша текущая корзина очищена."*
## 5. Защита от повторных списаний
После выдачи ссылки ты не должен предпринимать никаких действий на странице оплаты.
- Не нажимай кнопку "Я оплатил".
- Не обновляй страницу.
- Просто закрой сессию браузера через 2 минуты после отправки ссылки или сразу после команды пользователя.