Конфигурация нативных мобильных приложений¶
Требования применяются к build- и runtime-конфигурации iOS и Android. Уровни
обязательности определены в корневом README.md.
MOB-CONF-001. Публичность клиентской конфигурации¶
Уровень: MUST
Применяется к: значениям внутри приложения
Bundle, resources, manifest, plist и runtime-конфигурация не должны содержать секреты, приватные ключи или server credentials. Встроенное значение должно считаться доступным владельцу устройства независимо от obfuscation.
Обоснование¶
Клиентский binary и память устройства находятся вне доверенного периметра.
Проверка¶
- secret scanning source и artifact;
- декомпиляция release artifact;
- review build settings и resources.
Исключения¶
Публичные OAuth client ID и publishable SDK keys допускаются без серверных прав.
MOB-CONF-002. Типизация и выбор окружения¶
Уровень: MUST
Применяется к: итоговой конфигурации приложения
Каждый параметр должен иметь тип, допустимые значения и источник. Production- сборка не должна позволять пользователю или remote input переключить backend на неутверждённый endpoint. Отсутствующее, пустое и некорректное значение должны различаться и приводить к определённому fail-safe поведению.
Обоснование¶
Подмена endpoint способна перенаправить credentials и данные.
Проверка¶
- schema/unit tests;
- security-тест подмены endpoint;
- проверка production build variants.
Исключения¶
Внутреннее debug-меню допускается только в непроизводственной сборке с непроизводственными credentials и не должно входить в store artifact.
MOB-CONF-003. Remote configuration и feature flags¶
Уровень: MUST
Применяется к: параметрам, получаемым после установки
Remote configuration должна поступать по TLS из allowlist endpoint, проходить проверку схемы и иметь безопасные defaults. Она не должна отключать аутентификацию, авторизацию, certificate validation или обязательную защиту данных. Для каждого feature flag должно быть определено поведение при недоступной, просроченной или некорректной remote configuration.
Обоснование¶
Remote configuration изменяет поведение уже установленного приложения.
Проверка¶
- тест подменённой, устаревшей и недоступной конфигурации;
- review возможностей каждого flag;
- тест безопасного default.
Исключения¶
Не допускаются для ослабления security controls.