Разрешить Dropbox API для доступа к моей учетной записи на устройстве пользователя


Как разработчик мобильных устройств, я ищу решение, которое позволит пользователям моего приложения загружать несколько .zip-файлы, которые добавят "модульный" вид моему приложению. Я использовал API Dropbox в другом приложении, чтобы позволить пользователям создавать резервные копии элементов в своей учетной записи, но теперь мне нужно, чтобы пользователь получил доступ к моей учетной записи.

Есть ли способ автоматически аутентифицировать сеанс Dropbox для моей учетной записи или просто подключиться к моей общей папке без участия пользователя заметил?

Следующий Вопрос

Каковы последствия для безопасности жесткого кодирования моих ключей доступа и ключа/секрета приложения в приложении? Я знаю, что довольно просто получить исходный код от an .но что можно сделать с этой информацией?

3 9

3 ответа:

Это не является целью API, но вы можете авторизовать маркер доступа для вашего приложения вручную один раз, а затем внедрить и повторно использовать этот маркер доступа программно во всех экземплярах вашего приложения. (Вам нужно быть осторожным, чтобы случайно не отозвать этот маркер доступа.) Есть, вероятно, проблемы безопасности и ограничения скорости с этим методом, хотя, в зависимости от специфики.

Или другой способ использования ссылки, вероятно, будет проще. Просто сделайте ссылку(ы) желаемый преобразовать в прямой, Если это необходимо), а затем загрузить из него. (Кроме того, Dropbox, конечно, не CDN, поэтому имейте в виду ограничения пропускной способности .)

Последующий Ответ

Если вы встроите маркер приложения и маркер доступа в приложение, злоумышленник потенциально может извлечь их и затем получить доступ на чтение / запись / удаление (через API) к той части вашего Dropbox, к которой приложение имеет доступ (либо к папке приложения, либо к полному Dropbox в зависимости от вашего API приложение), независимо от каких-либо ограничений, которые обычно пытается применить само приложение. По этой причине вы не захотите использовать этот метод для хранения какой-либо личной информации, например, каких-либо личных пользовательских файлов.

Прошло немного времени, но теперь dropbox позволит вам сгенерировать публичный токен доступа и использовать его внутри вашего кода

Так что да,есть способ разрешить постоянный доступ к API dropbox. нам нужно сгенерировать маркер доступа из настроек приложения (консоль dropbox) и использовать его. Вот что говорит dropbox:

Генерируя маркер доступа, вы сможете выполнять вызовы API для ваш собственный аккаунт, не проходя через поток авторизации. К получение маркеров доступа для других пользователи, используйте стандартный поток OAuth.

Кодовыми словами:

AndroidAuthSession session = buildSession();
mApi = new DropboxAPI<AndroidAuthSession>(session);

    private AndroidAuthSession buildSession() {
        AppKeyPair appKeyPair = new AppKeyPair(APP_KEY, APP_SECRET);
        AndroidAuthSession session = new AndroidAuthSession(appKeyPair, ACCESS_TOKEN);
        // I guess then you just have to instantiate a DropboxAPI object and you're good to go without the startAuthentication()... endAuthentication() etc.
        return session;
    }

И вот мы идем просто использовать mApi, чтобы делать все, что вы хотите

Каковы последствия для безопасности жесткого кодирования моих ключей доступа и ключа/секрета приложения в приложении?

Кто-то с достаточной мотивацией в конечном итоге получит ваши ключи доступа.

Я знаю, что довольно просто получить исходный код от an .но что можно сделать с этой информацией?

Они могли бы сделать все, что вы можете сделать с этой информацией.