Skip to content

Latest commit

 

History

History
90 lines (67 loc) · 3.62 KB

File metadata and controls

90 lines (67 loc) · 3.62 KB

Security

Позиция продукта

Steam-Pulse должен быть безопасным read-only аналитическим инструментом. Любые будущие функции торговли должны быть изолированы, отключены по умолчанию и защищены ручным подтверждением.

Секреты

Запрещено хранить в git:

  • Steam credentials;
  • Steam shared secret или identity secret;
  • API keys площадок;
  • Telegram bot token;
  • cookies;
  • trade URLs;
  • database credentials.

Использовать:

  • .env только локально;
  • .env.example без реальных значений;
  • secret manager в production;
  • маскирование секретов в логах.

Логи

Логи должны помогать диагностике, но не раскрывать приватные данные.

Безопасно логировать:

  • marketplace name;
  • status code;
  • latency;
  • normalized item name;
  • opportunity id;
  • anonymized chat id;
  • error category.

Нельзя логировать:

  • tokens;
  • cookies;
  • passwords;
  • TOTP secrets;
  • полные private URLs;
  • HTTP request URLs, если они могут содержать токены или приватные query-параметры;
  • raw API responses с потенциальными секретами.

Внешние площадки

  • Соблюдать правила и ограничения площадок.
  • Использовать официальные API и documented endpoints, если они доступны.
  • Не проектировать обход капчи, банов, антифрода или rate limits.
  • При 429, капче или блокировке снижать нагрузку и переводить адаптер в degraded state.

Аккаунты и права

  • Разделять read-only credentials и trading credentials.
  • Для MVP не нужны Steam credentials, если можно обойтись публичными данными.
  • Будущие торговые ключи должны иметь минимальные права.
  • Опасные операции требуют approval workflow.

Supply chain

  • Фиксировать зависимости lock-файлом.
  • Использовать проверенные библиотеки.
  • Регулярно запускать dependency audit.
  • Не добавлять пакеты ради одной простой функции.

Финансовая безопасность

  • Все расчеты должны быть детерминированы и покрыты тестами.
  • Денежные значения хранить в Decimal, не в float.
  • Валюты хранить явно.
  • Комиссии версионировать и документировать.
  • В алертах показывать, какие комиссии учтены.

Production checklist

  • .env не попадает в git.
  • Все секреты замаскированы в логах.
  • Rate limits настроены на каждую площадку.
  • Timeouts есть у всех HTTP-запросов.
  • Есть healthcheck адаптеров.
  • Есть алерт о degraded state.
  • Есть backup базы.
  • Есть безопасный restore с проверкой целостности backup-файла.
  • Есть maintenance-команда с dry-run и backup перед cleanup.
  • Есть журнал отправленных сигналов.