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

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

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

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

Открой Command Palette (Cmd+K / Ctrl+K) и выбери Run Security Audit. Это отправляет AI расширенный security-запрос: 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
  • Хранение данных приложения — контент, записи и каталог твоего приложения хранятся в платформенном слое данных Proyecta (на базе Postgres), изолированы в рамках твоей организации и зашифрованы в состоянии покоя. Опубликованное приложение обращается к ним с помощью publishable key (pk_pub_*), который безопасно включать в страницу: сервер ограничивает анонимные запросы только опубликованным контентом, а административные действия дополнительно требуют авторизованной сессии с нужной ролью. Каждый запрос авторизуется в рамках твоей организации — одно приложение никогда не сможет прочитать данные другого.
  • Environment variables — секреты хранятся в выделенном хранилище, синхронизируются с backend твоего приложения там, где это применимо, и никогда не попадают в кодовую базу. Обрати внимание: секреты видны участникам workspace, у которых есть доступ к проекту.
  • Изолированные runtime-окружения — каждый проект работает в собственном контейнере, поэтому проблемы в dev-окружении не затрагивают других пользователей
  • Запусти аудит перед первой публикацией — полная проверка выявит проблемы до того, как они попадут в production.
  • Перезапускай после крупных изменений — добавление авторизации, платежей или загрузки файлов расширяет поверхность атаки.
  • Сужай область проверки — аудиты конкретных областей выполняются быстрее и дают более детальные результаты, чем проверка всего приложения целиком.