Android 允许Dropbox API访问我在用户';s装置

Android 允许Dropbox API访问我在用户';s装置,android,dropbox,dropbox-api,Android,Dropbox,Dropbox Api,作为一名移动开发人员,我正在寻找一种解决方案,允许我的应用程序的用户下载多个.zip文件,从而为我的应用程序增添“模块化”的感觉。我在另一个应用程序中使用了Dropbox API,允许用户将项目备份到他们的帐户,但现在我需要用户访问我的帐户 有没有办法自动验证Dropbox会话到我的帐户,或者直接连接到我的公用文件夹而不被用户发现 后续问题 将我的访问密钥和应用程序密钥/密码硬编码到应用程序中有什么安全含义?我知道从.apk获取源代码非常简单,但是有人可以用这些信息做什么?这不是API的预期目的

作为一名移动开发人员,我正在寻找一种解决方案,允许我的应用程序的用户下载多个.zip文件,从而为我的应用程序增添“模块化”的感觉。我在另一个应用程序中使用了Dropbox API,允许用户将项目备份到他们的帐户,但现在我需要用户访问我的帐户

有没有办法自动验证Dropbox会话到我的帐户,或者直接连接到我的公用文件夹而不被用户发现

后续问题
将我的访问密钥和应用程序密钥/密码硬编码到应用程序中有什么安全含义?我知道从.apk获取源代码非常简单,但是有人可以用这些信息做什么?

这不是API的预期目的,但是您可以手动为应用程序授权一次访问令牌,然后在应用程序的所有实例中以编程方式嵌入和重用该访问令牌。(不过,您需要小心,不要意外地撤销该访问令牌。)不过,根据具体情况,此方法可能存在安全性和速率限制问题

或者,使用链接的另一种方法可能更容易。只是(如果必要的话),然后。(另外,Dropbox当然不是CDN,所以请注意。)

后续回答

如果您将应用令牌和访问令牌嵌入到应用中,攻击者可能会提取这些令牌,然后(通过API)对应用访问的Dropbox进行读/写/删除访问(应用文件夹或完整Dropbox,具体取决于您的API应用),不管你的应用程序本身有什么限制,它通常都会强制执行。因此,您不希望使用此方法存储任何私有信息,例如,任何特定于用户的私有文件

将我的访问密钥和应用程序密钥/密码硬编码到应用程序中有什么安全含义

有足够动力的人最终会得到你的钥匙

我知道从.apk获取源代码非常简单,但是有人可以用这些信息做什么呢

他们可以利用这些信息做任何你能做的事情。

一段时间过去了,但是 现在dropbox将允许您生成公共访问令牌并在代码中使用它

是的,有一种方法可以允许永久访问dropbox API。我们需要从应用程序设置(dropbox控制台)生成访问令牌并使用它。dropbox是这么说的:

通过生成访问令牌,您将能够对 您自己的帐户,而无需通过授权流程。到 为其他用户获取访问令牌,使用标准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;
    }
AndroidAuthSession session=buildSession();
mApi=新的DropboxAPI(会话);
私有AndroidAuthSession buildSession(){
AppKeyPair AppKeyPair=新的AppKeyPair(应用程序密钥,应用程序密钥);
AndroidAuthSession会话=新的AndroidAuthSession(appKeyPair,ACCESS_令牌);
//我想你只要实例化一个DropboxAPI对象,就可以不用startAuthentication()…endAuthentication()等了。
返回会议;
}

现在我们就用mApi做你想做的任何事情

谢谢Greg,我昨晚就知道了。我认为除了创建演示应用程序和登录之外,还有一种更容易获得访问令牌的方法。谢谢你关于带宽限制的链接,我也想知道。您还可以解释一下我补充的后续问题吗?如果这不是API的预期目的,并且存在安全漏洞的潜在风险,那么还有什么替代方法呢?是否有任何服务或API可用于此?谷歌硬盘或iCloud怎么样?我正在寻找类似的解决方案。Thanke.Greg-“这不是API的预期用途,但您可以手动授权应用程序的访问令牌一次,然后在应用程序的所有实例中以编程方式嵌入和重用该访问令牌。(不过,您需要小心,不要意外地撤销该访问令牌。)”。如果以后我更改帐户密码,这是否仍然有效?是的,帐户的访问令牌不受更改帐户密码的影响。(如果需要,可以通过单独撤销访问令牌)