Skip to content

Доступ и изоляция ​

Проектируемая система не должна давать клиентскому HTML, референсу или заданию доступ к данным платформы и чужих проектов.

Случайный адрес упрощает обмен ссылкой, но не заменяет проверку прав.

Это требования для реализации и проверки, а не результат завершённого security-аудита.

Автор и проект ​

Каждая команда и чтение приватного материала проверяют владельца проекта на сервере. Публичный ID не является паролем. Предпросмотр черновика имеет отдельный контроль доступа; запрет индексирования не делает страницу приватной.

Секреты AI-провайдера, базы и хранилища остаются на сервере. В браузере доступны только данные, необходимые автору для редактирования, либо посетителю для просмотра публикации.

Сборка и референсы ​

Загрузка URL должна проверять адрес назначения, перенаправления и ограничения размера/времени. Нельзя позволять референсу обращаться к внутренним службам и metadata endpoints. Изображение проверяется по фактическому содержимому, а не только имени файла.

Сборка выполняется с ограничениями ресурсов, сети и файловой системы. Рабочая среда одного задания не содержит секретов платформы и материалов другого проекта. Запрос модели не может расширить эти права.

Просмотр ​

Клиентские сайты выдаются на отдельном регистрируемом домене согласно принятому решению. Предпросмотр в редакторе тоже должен быть изолирован: отдельный origin, ограниченный iframe и проверка источника сообщений между окнами. Набор разрешений определяется необходимыми возможностями страницы.

Служебные cookies не распространяются на домен клиентского контента. Хранилище исходных материалов и Git-истории приватное; публичный доступ выдаёт только опубликованные файлы. Кеш учитывает сайт и версию.

Проверка границ ​

До запуска проверяем попытку открыть чужой черновик, изменить чужой проект, загрузить референс из внутренней сети и прочитать секрет из сборки. После отключения сайта проверяем не только основную выдачу, но и кеш. Для жалоб и блокировки публикаций нужен управляемый процесс, а не только сложный случайный адрес.

Bonsite — маленькие сайты для ваших больших идей.