【问题标题】:Security loophole in Google Document List APIGoogle 文档列表 API 中的安全漏洞
【发布时间】: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 IdClient 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


【解决方案1】:

您只需要 OAuth 访问令牌即可访问 API。但访问令牌的有效期仅为一小时。然后你需要刷新令牌和客户端密码来生成一个新的。

Check the OAuth2 doc for more info

【讨论】:

    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    相关资源
    最近更新 更多