【问题标题】:How to avoid access to a user's GMail inbox being counted as "hacking attempts"如何避免访问用户的 GMail 收件箱被视为“黑客攻击”
【发布时间】:2014-03-19 16:43:04
【问题描述】:

我们希望为我们(基于网络的)个人文档管理解决方案的用户提供将作为附件发送的文档导入到他们的 GMail 地址的可能性。

我们目前的解决方案是只允许我们的用户将他们的登录凭据存储在我们的网络应用程序中,然后使用它通过 IMAP 访问用户的 GMail 收件箱,这不仅从安全角度来看不是最理想的(我们宁愿不存储登录凭据,如果可能的话),有时(也许当我们轮询太频繁或太多用户的轮询时)会导致我们的应用程序的登录尝试被 GMail 阻止。我们从 IMAP 服务器收到错误消息“[ALERT] 请通过您的网络浏览器登录:http://support.google.com/mail/accounts/bin/answer.py?answer=78754”,并且我们的用户报告说他们看到 GMail 已阻止了一些“可能的黑客攻击”或类似情况。

所以我的主要问题是:

  • 在这种情况下切换到 OAuth 进行身份验证(并且仍然使用 IMAP 检查我们用户的收件箱,仅使用 OAuth 令牌进行身份验证)会有所帮助吗?我找到了有关如何执行此操作的文档,我只是想知道它在这种情况下是否有帮助。
  • 对于我们应该/被允许多久轮询用户的收件箱(或者我们并行打开到 GMail 的连接数等)是否有任何指导方针/配额/限制?我在 Google 网站的开发者文档中找不到任何相关内容。
  • 除了 IMAP 之外,还有其他方法可以将 GMail 邮件中的附件导入我们的应用程序吗?

【问题讨论】:

    标签: email oauth gmail gmail-imap incoming-mail


    【解决方案1】:

    回答您的问题

    1.使用OAuth的好处是你不会直接存储用户的凭据。所以你会将用户重定向到谷歌登录页面,谷歌将验证用户并为你提供访问令牌和刷新令牌,然后你可以访问使用访问令牌和谷歌 API 的用户电子邮件。刷新令牌是为了重新生成该访问令牌。

    2.由于gmail支持IMAP4协议和Idle,您可以使用它在新邮件到来时接受来自gmail服务器的实时通知(您不需要每次都轮询gmail)

    【讨论】:

    • 我已经知道 OAuth 的工作原理,我们已经为 Google Drive 和其他服务实现了它。我的问题更倾向于通过 OAuth 对用户进行身份验证是否有助于我们在这种情况下看到的错误消息。
    • 而且我们有相当多的用户将他们的 GMail 帐户连接到我们的服务,因此如果我理解的话,保持从我们的服务器到 GMail 的 IMAP Idle 连接打开也可能无法扩展正确。
    • OAuth 肯定会帮助您摆脱现在遇到的错误,而不是一直打开空闲连接,一旦他登录到您的系统,您就可以为每个用户打开它。
    猜你喜欢
    • 2013-02-06
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多