studio/SECURITY.md
МИН 31adbf151b Initial public release: Студия Рублокса v1.0
Open-source веб-студия для создания игр Рублокса, двойная лицензия
AGPL-3.0 + Коммерческая.

Главное:
- Vite 5 + React 18 + Babylon 7.54.3 + Monaco Editor + Colyseus 0.16
- Самодостаточный движок ~28к строк (66 файлов): BlockManager,
  TerrainVoxelBuilder, ModelManager, DecoManager, PlayerController,
  ScriptSandboxWorker, MultiplayerSync, 30+ GD-гейммодов
- Главный редактор KubikonEditor (~37к строк) + панели, ScriptEditor (Monaco)
- Витрина игр (KubikonFeed, KubikonStudio, KubikonDocs, KubikonLearn)
- Geometry Dash sub-app (GdMenu, GdShop, GdRules, GdCoverArt)
- 10 admin-preview каталогов для дизайнеров (скины, музыка, порталы и т.д.)
- Конфигурируемый бэкенд через VITE_API_BASE — работает со staging
  (dev-api.rublox.pro) без настройки
- Standalone-режим (VITE_STANDALONE=true) — открыть пустой редактор без бэка
- Полная документация (на русском): README, ARCHITECTURE, CONTRIBUTING,
  SECURITY, CHANGELOG
- ESLint + Prettier + EditorConfig
- Legal: LICENSE (AGPL-3.0), LICENSE-COMMERCIAL.md, CLA.md, COPYRIGHT.md
- Issue templates: bug_report, feature_request, security_disclosure

Перед публикацией:
- Все импорты из minecraftia заменены на локальные
- Все хардкоды URL (minecraftia-school.ru) и внутренних IP убраны → env
- Admin-эндпоинты Kubikon3DService вырезаны (остаются в приватном репо)
- AdminKubikonModeration не публикуется (модерация — в team.rublox.pro)
- 93 МБ ассетов public/kubikon-assets вынесены в .gitignore
  (раздаются через release artifact)
2026-05-27 23:41:10 +03:00

65 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Политика безопасности
## Поддерживаемые версии
Только ветка `main` получает security-обновления. Тегированные релизы (`v0.x`) — best-effort.
## Сообщение об уязвимости
**НЕ открывай публичный issue для уязвимостей безопасности.**
Уязвимости в этой студии могут напрямую повлиять на наш продакшен `studio.rublox.pro` и созданные через неё игры. Публичное раскрытие до выпуска патча может привести к реальному вреду реальным пользователям (включая несовершеннолетних, играющих в опубликованные игры).
Пиши на: **`security@rublox.pro`** (читает только мейнтейнер проекта)
Включи в письмо:
1. Описание проблемы
2. Шаги воспроизведения (или proof-of-concept)
3. Затронутые версии / файлы
4. Твою оценку воздействия (XSS / RCE / IDOR / побег из песочницы / и т.д.)
5. Твой контакт для уточнений
6. Хочешь ли публичное упоминание после фикса (добавим в Hall of Fame в CHANGELOG)
## Что ожидать
| Шаг | Сроки |
|---|---|
| Подтверждение получения | в течение 24 часов |
| Оценка серьёзности | в течение 3 рабочих дней |
| Фикс в приватной ветке | в течение 7 дней для критичных |
| Публичный релиз патча | когда готов, с благодарностью |
## Особенно ценные находки
Следующие классы багов **высоко ценятся** (потому что могут скомпрометировать пользователей):
- **Побег из script-песочницы** (`engine/scripts/ScriptSandbox*.js`) — скрипт юзера получает доступ к `window`, `document`, `fetch`, `localStorage`, либо угоняет сессии других игроков.
- **XSS в рендере контента игр** — названия игр, чат-сообщения, тексты комментов рендерятся как HTML.
- **Инъекция мультиплеер-сообщений** — кастомные Colyseus-сообщения роняют других клиентов или выполняют код атакующего.
- **Утечка auth-токена** — JWT или ticket появляется в URL, query-string, console-логах, error-страницах или analytics-событиях.
- **Инъекция в asset-URL** — префиксы `url:...` (модели от дизайнеров) загружают произвольные файлы вне нашего asset-бакета.
## Что НЕ является уязвимостью
(Не теряй своё и наше время — эти отчёты отклоняются.)
- Отсутствующий `X-Frame-Options` или `Content-Security-Policy` (знаем, работаем над этим на стороне сервера).
- Self-XSS (юзер сам вставляет JS в свой DevTools).
- Устаревшие `npm audit` warning'и без рабочего эксплойта.
- Раскрытие информации о файлах в репо (это же open-source!).
- Отчёты от автоматических сканеров без ручной проверки.
## Награда
Мы маленький проект и не можем платить bounty, но за любую настоящую уязвимость:
- Публичное упоминание в `CHANGELOG.md` (если хочешь)
- Включение в раздел «Hall of Fame» этого файла
- Личное спасибо от мейнтейнера
- За high-impact-репорты: разовый денежный подарок по усмотрению мейнтейнера (редко, но возможно)
## Hall of Fame
ока пусто — стань первым!_