【问题标题】:List ignores drive.file scope and shows shared files not created by the calling app列表忽略 drive.file 范围并显示不是由调用应用程序创建的共享文件
【发布时间】:2013-08-18 16:47:31
【问题描述】:

我们的应用程序使用 drive.file 范围来确保我们只能看到由我们的应用程序创建的用户文件。

但是,“list”调用会返回已与用户共享的文件,即使它们不是由我们的应用程序创建的。

这可以在“试试看!”中轻松验证。文件/列表 API 文档的部分。 使用 drive.file 范围授权并运行不带任何参数的简单列表查询。这应该会返回一个空列表,但在我的情况下会返回与我共享的数十个文件。

之前也有同样的问题(略有变化只影响带有 q 参数集的查询):Listing files with search query returns out-of-scope results (drive.files.list call, using drive.files scope)

在此期间它已得到修复,但现在似乎所有列表查询都恢复了。它的问题主要不是因为它破坏了我们的应用程序,该应用程序只需要它自己的文件。存在隐私问题,因为我突然可以看到我们用户的私人数据的文件名,他们从未同意过。

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    我相信这个问题是由于 API Explorer 的行为,而不是 Drive API 本身。如果 API Explorer 已经有一个能够进行调用的具有 OAuth 范围的令牌,它将使用它,因此如果之前为 API Explorer 提供了一个可以查看所有用户文件的范围,您将把它们全部取回。尝试在以下位置为您的帐户撤销所有 Explorer 令牌:

    https://accounts.google.com/b/0/IssuedAuthSubTokens?hl=en

    然后,在为 developers.google.com 清除所有 cookie/会话后,尝试使用 drive.file 范围创建一个新令牌并再次尝试您的 API 调用。

    您还应该注意,公开共享的文件将被退回。

    【讨论】:

    • 这也发生在我们的应用程序中,我突然在我们的应用程序日志中看到我的一些个人文件,这些文件已由某个合作者与我共享。你是对的,这些包括公开共享的文件。但是,我还看到“知道链接的任何人”共享的文件。我们应用程序的用户没有与我共享链接,所以我不确定我是否应该看到它。无论如何,谢谢这使情况有所澄清。
    • 我也看到过这个处理返回任意文件。这里仍然存在一定的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多