Google App Engine Go - 使用OpenID,我是否也应该使用验证码?

目前我正在golang开发一个gae应用程序,允许用户使用Google的openid登录服务。显然,每个账户都会映射到一个谷歌账户。我应该为用户注册实现captcha吗,还是使用openid已经阻止了服务受到bot攻击?


最佳答案:

首先,对机器人攻击的恐惧实际上是一个初步的警告。解析CSRF令牌(无论如何都应该使用)和处理cookie已经给攻击者带来了足够的痛苦。我怀疑是否有人会自寻烦恼地建立自己的OpenID提供者,这是唯一可以做到这一点的方法。
其次,应用程序引擎的OpenID联合登录是用户API功能,而不是Go运行时的功能-您可以使用它的任何操作(Facebook、雅虎!,蒸汽……谷歌)。用户API提供两种模式(可通过应用程序设置配置):OpenID联合登录和Google帐户登录。选择哪个取决于需求。如果你只需要用户的Google帐户,最好使用后者,如果它是简单的无密码登录,几乎所有的东西,选择OpenID。从应用程序的角度来看,两者看起来完全相同。不过,最好的办法是Oauth。
回到这个问题上来,google账户api和oauth都将使这种攻击几乎不可能,而使用openid,这样做要简单一些。
https://developers.google.com/appengine/docs/go/users/overview