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)
65 lines
4.3 KiB
Markdown
65 lines
4.3 KiB
Markdown
# Политика безопасности
|
||
|
||
## Поддерживаемые версии
|
||
|
||
Только ветка `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
|
||
|
||
_Пока пусто — стань первым!_
|