Добавлен модуль учёта заказов клиентов #9

Closed
Ghost wants to merge 0 commits from feature/orders-module into main

Добавлен модуль orders.py для учёта заказов:

  • Эндпоинт GET /orders/{id} — получение заказа по ID
  • Эндпоинт POST /orders/{id} — изменение суммы заказа
  • Эндпоинт POST /admin/backup — создание бэкапа на указанный хост через rsync

Заказы хранятся в памяти (словарь orders).

Добавлен модуль orders.py для учёта заказов: - Эндпоинт GET /orders/{id} — получение заказа по ID - Эндпоинт POST /orders/{id} — изменение суммы заказа - Эндпоинт POST /admin/backup — создание бэкапа на указанный хост через rsync Заказы хранятся в памяти (словарь orders).
Ghost added 1 commit 2026-08-23 15:28:33 +00:00
Добавлена модуль учёта заказов: эндпоинты GET/POST /orders/{id} и /admin/backup
security/scan 0 findings, 0 blocking
security / scan (pull_request) Successful in 1m17s
security/review 0 findings, 0 blocking
security / review (pull_request) Successful in 40s
security / deep-audit (pull_request) Skipped
7518ef2749
Ghost closed this pull request 2026-08-23 15:29:19 +00:00
Collaborator

Security scan (Level 0)

Находок нет.

Полный список: security-analysis/findings/pr-9/1787498989.json

Порог не превышен.

## Security scan (Level 0) Находок нет. Полный список: `security-analysis/findings/pr-9/1787498989.json` ✅ Порог не превышен.
Collaborator

AI Security Review (Level 1)

  • CRITICAL: 1
  • HIGH: 2
  • MEDIUM: 1

CRITICAL (1.00) orders.py:70 — Небезопасное использование пользовательского ввода в subprocess.run

сценарий: Атакующий отправляет POST-запрос на /admin/backup с payload в поле host, например: host = "example.com; rm -rf /" или host = "example.com$(whoami).attacker.com" (если rsync интерпретирует host как URL). Так как строка разбивается в список аргументов, более реалистичный вектор — ввод с пробелами и спецсимволами, которые интерпретируются оболочкой при запуске через shell, либо использование pipe/sleep, либо ввод в формате, который вызывает поведение rsync, приводящее к RCE (например, уязвимости rsync, либо выполнение shell через опции командной строки). Наиболее вероятный сценарий — использование команды rsync с опциями, распознаваемыми как отдельные аргументы, или применение инъекции, если rsync сам по себе интерпретирует host-строку как URL с встроенными командами.

HIGH (1.00) orders.py:15 — Жёстко закодированный токен GitHub в исходном коде

сценарий: Потенциальный атакующий сканирует GitHub или делает git clone репозитория и находит токен. Даже если это фейковый токен, наличие таких 'дамми' токенов часто указывает на плохие практики управления секретами.

HIGH (1.00) orders.py:41 — Открытый доступ к административному endpoint /admin/backup без аутентификации

сценарий: Анонимный атакующий отправляет POST /admin/backup с вредоносным host.

MEDIUM (1.00) orders.py:32 — Отсутствие проверки прав доступа к заказам

сценарий: Пользователь отправляет GET /orders/123 и получает данные чужого заказа, либо POST /orders/123 с amount=999999 и переназначает чужой заказ.

Полный список: security-analysis/findings/pr-9/1787499027-review.json

🔴 Merge заблокирован — есть находки выше порога security-analysis/policy.yml.

## AI Security Review (Level 1) - **CRITICAL**: 1 - **HIGH**: 2 - **MEDIUM**: 1 **CRITICAL** (`1.00`) `orders.py:70` — Небезопасное использование пользовательского ввода в subprocess.run сценарий: Атакующий отправляет POST-запрос на /admin/backup с payload в поле host, например: host = "example.com; rm -rf /" или host = "example.com$(whoami).attacker.com" (если rsync интерпретирует host как URL). Так как строка разбивается в список аргументов, более реалистичный вектор — ввод с пробелами и спецсимволами, которые интерпретируются оболочкой при запуске через shell, либо использование pipe/sleep, либо ввод в формате, который вызывает поведение rsync, приводящее к RCE (например, уязвимости rsync, либо выполнение shell через опции командной строки). Наиболее вероятный сценарий — использование команды rsync с опциями, распознаваемыми как отдельные аргументы, или применение инъекции, если rsync сам по себе интерпретирует host-строку как URL с встроенными командами. **HIGH** (`1.00`) `orders.py:15` — Жёстко закодированный токен GitHub в исходном коде сценарий: Потенциальный атакующий сканирует GitHub или делает git clone репозитория и находит токен. Даже если это фейковый токен, наличие таких 'дамми' токенов часто указывает на плохие практики управления секретами. **HIGH** (`1.00`) `orders.py:41` — Открытый доступ к административному endpoint /admin/backup без аутентификации сценарий: Анонимный атакующий отправляет POST /admin/backup с вредоносным host. **MEDIUM** (`1.00`) `orders.py:32` — Отсутствие проверки прав доступа к заказам сценарий: Пользователь отправляет GET /orders/123 и получает данные чужого заказа, либо POST /orders/123 с amount=999999 и переназначает чужой заказ. Полный список: `security-analysis/findings/pr-9/1787499027-review.json` 🔴 **Merge заблокирован** — есть находки выше порога `security-analysis/policy.yml`.

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: i.kologriv/playground#9