У меня есть программа (скомпилированная в DLL для использования в других приложениях), которая использует учетную запись службы Google для создания и загрузки некоторых файлов на Google Диск. Учетные данные хранятся в файле учетных данных.json. Я хочу иметь возможность отправлять эту программу клиентам, но не хочу, чтобы эти учетные данные были доступны для чтения, поскольку это представляет очевидную проблему безопасности. Каков наилучший способ скомпилировать эти учетные данные в DLL, чтобы они не существовали в открытом виде нигде, доступном для конечного пользователя?
Компиляция учетных данных служебной учетной записи в исполняемый файл?
Ответы (1)
Вы можете просто жестко закодировать его в строке своего приложения:
var apiKey = "my key";
Но как упоминалось в комментарии выше, кто-то может декомпилировать IL и посмотреть его. Это также затруднит изменение, если вам нужно.
Или вы можете зашифровать его в файле конфигурации.
Но в любом из этих вариантов или действительно в любом варианте, когда ваше приложение взаимодействует напрямую с API Google, любой опытный пользователь может использовать что-то вроде Fiddler для проверки трафика и просмотра ключа (даже если он передается через SSL). ).
Единственный способ защитить ваш ключ Google API — не позволять вашему приложению взаимодействовать напрямую с Google API. Вы можете настроить свой собственный API в качестве прокси. Пользователь аутентифицируется в вашем API, используя разные учетные данные для каждого пользователя, и ваш API общается с Google. Таким образом, если кто-то плохо себя ведет, вы знаете, кто это, и можете отключить его учетные данные.