Перейти к содержимому

Аудит безопасности

Попроси AI проверить уровень защищённости твоего приложения, следуй приведённым ниже рекомендациям и храни секреты на странице Settings.

Безопасность в Proyecta обеспечивается сочетанием платформенных настроек по умолчанию, AI-проверок и нескольких привычек, которые стоит выработать. Вот как это устроено.

Открой Command Palette (Cmd+K / Ctrl+K) и выбери Run Security Audit. Это отправит развёрнутый запрос на проверку безопасности в AI, который прочитает весь твой код и выдаст список уязвимостей с приоритетами и конкретными способами их устранения.

Аудит проверяет:

  • Захардкоженные API-ключи, токены или пароли в исходных файлах
  • Переменные окружения с префиксом VITE_, которые передают секреты на клиент
  • Отсутствие серверной валидации входных данных на API-endpoints
  • Страницы или API-endpoints без аутентификации
  • Неэкранированный пользовательский контент (риски XSS)
  • Уязвимости в зависимостях
  • Смешанный контент или захардкоженные URL с http://
  • Отсутствие валидации при загрузке файлов

Аудит безопасности можно также запустить вручную из чата или сузить его до конкретной области:

  • "Review my checkout flow for security issues"
  • "Check the admin pages — who can access what?"
  • "Look at every endpoint that writes to the database and tell me if any of them are missing authorization"

Храни секреты надёжно

  • Сохраняй все API-ключи, учётные данные для баз данных и токены сторонних сервисов в разделе Environment Variables на странице Settings
  • Никогда не вставляй секреты в сообщения чата и не коммить их в код
  • Если секрет оказался скомпрометирован, немедленно отзови его у стороннего провайдера и создай новый

Ограничивай доступ

  • Реализуй в приложении разграничение прав на основе ролей ("Add admin and member roles. Only admins can access /admin pages.")
  • Ограничивай доступ к чувствительным страницам и endpoints только аутентифицированными пользователями
  • Всегда валидируй пользовательский ввод на сервере, а не только на клиенте

Используй HTTPS повсеместно

  • Все опубликованные приложения Proyecta автоматически обслуживаются по HTTPS
  • SSL-сертификаты выпускаются и обновляются автоматически
  • Для кастомных доменов это тоже работает, как только DNS настроен правильно

Поддерживай зависимости в актуальном состоянии

  • Периодически спрашивай AI: "Check my dependencies for known security vulnerabilities and upgrade the vulnerable ones."
  • Проверяй, что именно изменил AI — обновления зависимостей иногда содержат breaking changes

Запускай аудит после крупных изменений

  • Повторно запускай аудит после добавления аутентификации, платежей, загрузки файлов или любой функциональности, затрагивающей данные пользователей
  • Перед первой публикацией в production сделай полную проверку
  • HTTPS и сертификаты для твоего субдомена *.proyecta.live
  • Переменные окружения — секреты хранятся в выделенном хранилище и синхронизируются с backend твоего приложения (Convex), не попадая в кодовую базу. Обрати внимание: секреты видны участникам рабочего пространства с доступом к проекту.
  • Изолированные среды выполнения — каждый проект работает в собственном контейнере, поэтому проблемы в dev-окружении не влияют на других пользователей
  • Запускай аудит перед первой публикацией — полная проверка выявит проблемы до того, как они окажутся в открытом доступе.
  • Повторяй аудит после крупных изменений — добавление auth, платежей или загрузки файлов расширяет поверхность атаки.
  • Сужай область проверки — аудит конкретных участков выполняется быстрее и даёт более детальные результаты, чем проверка всего приложения сразу.