【发布时间】:2012-06-29 13:09:12
【问题描述】:
目前,我正在使用 HttpClient + XML 解析器来使用 Google Document List API 3。
URL url = new URL("https://docs.google.com/feeds/default/private/full?v=3");
URLConnection conn = (HttpURLConnection) url.openConnection();
conn.addRequestProperty("client_id", your client id);
conn.addRequestProperty("client_secret", your client secret);
conn.setRequestProperty("Authorization", "OAuth " + token);
我意识到,即使我不提供Client Id、Client secret 甚至Simple API key(我只提供身份验证令牌),我仍然可以毫无问题地与 Google Doc(Google Drive)通信。我仍然可以下载和上传文件。
我想知道,为什么会这样?这是 Google API 中的安全漏洞吗?
【问题讨论】:
-
也许授权令牌就足够了?如果你也省略它会发生什么?
-
身份验证令牌是必须的,我不能忽略它。但是,我可以省略客户端 ID、客户端密码甚至是简单的 API 密钥。 Google 需要这些信息来跟踪其 API 的应用程序使用情况。现在,即使我不向谷歌提供服务,我仍然可以使用他们的服务,这让我感到很奇怪。
-
如何获取授权令牌?通常,为了获得它,您需要登录(很可能使用 OAUTH)。因此,当您已经获得令牌时,这意味着您已经成功登录,并且令牌本质上是指特定的客户端 ID 等。我同意这仍然不是最好的事情,因为您可能会在整个过程中重复使用令牌应用程序。
-
我通过 GoogleAccountManager 获取授权令牌。如果是这样,Google 将无法通过特定应用跟踪其 API 的使用情况。它只能知道它的 API 正在被 Android 使用,而不是被哪个应用程序使用。
标签: android google-api google-api-java-client