Концепции
Шифрование
Публикуйте чувствительные файлы шифртекстом и расшифровывайте их в своём сервисе.
Файлы на CDN доступны любому, кто знает ссылку. Если файл не должен читать каждый, кто нашёл URL, пометьте его как зашифрованный.
Как это работает
- Включите флаг шифрования для файла в Project settings → Encryption.
- При публикации содержимое шифруется ключом проекта (после удаления ключей
$note). - Ваш сервис расшифровывает его тем же ключом.
Где взять ключ
Админы проекта открывают Project settings → Encryption → Show key. Относитесь к ключу как к паролю: храните в переменной окружения или менеджере секретов, не в репозитории.
const veresk = new Veresk({
cdnUrls: ['<CDN URL>'],
version: 'default',
consumer: 'backend',
encryptSecret: process.env.VERESK_SECRET,
});
Кто может расшифровать
Ключ, зашитый в сборку игры, можно извлечь из сборки. Используйте шифрование для серверных потребителей. Для игровых клиентов не рассчитывайте на него как на способ спрятать секреты.
Перевыпуск ключа
Regenerate создаёт новый ключ и перешифровывает им все зашифрованные файлы. Клиенты, которые всё ещё используют старый ключ, больше не смогут расшифровать, поэтому сначала обновите encryptSecret везде.