В настоящее время я разрабатываю плагин для Discourse и столкнулся с конкретной проблемой, связанной с безопасностью. Мой плагин требует хранения и доступа к конфиденциальным данным, и я изучаю способы обеспечения их защиты, особенно от доступа со стороны других плагинов в той же среде Discourse.
Не могли бы вы поделиться информацией или рекомендациями по следующему вопросу:
Возможно ли изолировать плагин Discourse таким образом, чтобы файл с секретами или конфиденциальные данные, используемые моим плагином, не могли быть прочитаны или доступны для других плагинов, установленных на том же экземпляре Discourse? Если да, то какие существуют лучшие практики или рекомендуемые подходы для достижения такого уровня безопасности?
Меня особенно интересуют методы, позволяющие безопасно хранить и получать доступ к ключам шифрования или аналогичным конфиденциальным данным внутри моего плагина, не раскрывая их другим плагинам или частям системы Discourse.
Конечно, как приложение на RoR, Discourse корректно управляет авторизацией пользователей, поэтому, например, обычный пользователь не может получить доступ к ресурсам администратора.
Однако плагин имеет административную область действия (за пределами этапа начальной инициализации ядра), поэтому ваше базовое предположение должно заключаться в том, что плагин может получить доступ к данным другого плагина (даже если это крайне маловероятно — собирается ли плагин реакций передавать ваши данные в Facebook?! Сомневаюсь!! )
Ответственность за проверку всего кода, добавляемого в инстанс, чтобы он не злоупотреблял данными, лежит на установщике (то есть на человеческом администраторе).
Если вы избегаете рисков, просто не устанавливайте сторонние плагины, которые вы не до конца понимаете — ограничьтесь только базовой установкой.
Но в конечном счете убедитесь, что у вас в штате есть старший разработчик RoR для проверки всего, что добавляется в инстанс?