Исправления безопасности предназначены прежде всего для последнего стабильного
выпуска из GitHub Releases.
Ветка main может содержать ещё не выпущенные изменения. Опубликованные пакеты
прошлых PWA-версий сохраняются неизменяемыми и не получают исправления задним
числом.
Не публикуйте сведения о потенциальной уязвимости в обычном Issue до её исправления.
Предпочтительный канал — Private vulnerability reporting на вкладке
Security репозитория. Если эта функция недоступна, сначала свяжитесь с автором
через контакты на barilo.ru и передайте краткое описание без
архива, персональных данных, ключей и других чувствительных материалов.
В сообщении полезно указать:
- GameSpace PWA или APK;
- точную версию;
- устройство, ОС и браузер либо версию Android WebView;
- ожидаемое и фактическое поведение;
- минимальные шаги воспроизведения;
- формат и структуру тестового архива без конфиденциального содержимого;
- возможные последствия уязвимости.
Автор может запросить дополнительную информацию и безопасный минимальный пример. Публичные подробности следует раскрывать после подготовки исправления или по согласованному плану.
GameSpace предназначен для архивов из доверенного источника. Импортированный сайт может содержать произвольные HTML, CSS и JavaScript. Приложение не является антивирусом и не превращает такой сайт в безопасную песочницу.
Проверка структуры архива защищает от ряда ошибок распаковки: абсолютных путей,
выхода через .., пустых сегментов, управляющих символов и повторяющихся путей.
Она не подтверждает безопасность JavaScript, ссылок, медиафайлов или логики
самого сайта.
- Выбранный архив обрабатывается GameSpace на устройстве и не загружается приложением на сервер.
- Распакованный сайт хранится в закрытом хранилище браузера OPFS.
- Код внутри импортированного сайта может выполнять внешние запросы, если это позволяют браузер, политика источника и доступная сеть. Поэтому утверждение «архив остаётся на устройстве» описывает поведение GameSpace, но не является гарантией для произвольного импортированного сайта.
- Квота, сохранность данных и удаление неиспользуемого хранилища частично определяются браузером и операционной системой.
- В текущем Android-манифесте отсутствует разрешение
INTERNET; встроенная WebView предназначена для локального содержимого. - Внешняя ссылка из сайта может быть передана другому приложению Android, например системному браузеру. Дальнейшее поведение определяется этим приложением.
- JavaScript и доступ к локальным ресурсам включены для работы импортированного сайта. Поэтому запуск недоверенного архива не рекомендуется даже без интернет-разрешения.
- Распакованные файлы хранятся в каталоге данных приложения и удаляются вместе с ним.
Архив с неизвестным содержимым может занять значительно больше места после распаковки, потребовать длительной обработки или привести к выгрузке приложения операционной системой. Перед импортом большого архива следует проверить его источник, целостность, распакованный размер и доступное место.
Исходный архив необходимо хранить отдельно: удаление приложения, очистка данных или политика хранения браузера могут удалить рабочую копию сайта.
Инструкции по формату архива, автономной работе и хранению данных приведены в основной документации. Сторонние компоненты сохраняют собственные условия и уведомления из THIRD_PARTY_NOTICES.md.