Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌应用程序引擎Go-使用OpenID,我应该也使用验证码吗?_Google App Engine_Openid_Go_Captcha_Bots - Fatal编程技术网

Google app engine 谷歌应用程序引擎Go-使用OpenID,我应该也使用验证码吗?

Google app engine 谷歌应用程序引擎Go-使用OpenID,我应该也使用验证码吗?,google-app-engine,openid,go,captcha,bots,Google App Engine,Openid,Go,Captcha,Bots,目前,我正在golang开发一个GAE应用程序,允许用户使用谷歌的OpenID登录服务。显然,每个账户都会映射到一个谷歌账户。我应该为用户注册实施captcha,还是使用OpenID已经可以防止服务受到机器人攻击?您是否接受任何OpenID?那么,这是不够的保护。任何人都可以在自己的域上建立OpenID站点,使用脚本创建10亿个帐户,并在您的站点上使用其中一个帐户登录 您是否只接受特定的OpenID提供程序?那么,您就没有按照预期使用OpenID(事实上,这与创建OpenID的原因正好相反)。但

目前,我正在golang开发一个GAE应用程序,允许用户使用谷歌的OpenID登录服务。显然,每个账户都会映射到一个谷歌账户。我应该为用户注册实施captcha,还是使用OpenID已经可以防止服务受到机器人攻击?

您是否接受任何OpenID?那么,这是不够的保护。任何人都可以在自己的域上建立OpenID站点,使用脚本创建10亿个帐户,并在您的站点上使用其中一个帐户登录

您是否只接受特定的OpenID提供程序?那么,您就没有按照预期使用OpenID(事实上,这与创建OpenID的原因正好相反)。但答案是:您是否相信OpenID提供商在创建帐户时已经进行了尽职调查,以防止垃圾邮件帐户

无论如何,您可能会发现captcha是一个糟糕的解决方案,目前它的所有实现都已中断(但这是一个完全不同的主题)。

您是否接受任何OpenID?那么,这是不够的保护。任何人都可以在自己的域上建立OpenID站点,使用脚本创建10亿个帐户,并在您的站点上使用其中一个帐户登录

您是否只接受特定的OpenID提供程序?那么,您就没有按照预期使用OpenID(事实上,这与创建OpenID的原因正好相反)。但答案是:您是否相信OpenID提供商在创建帐户时已经进行了尽职调查,以防止垃圾邮件帐户


无论如何,您可能会发现captcha是一个糟糕的解决方案,目前它的所有实现都已中断(但这是一个完全不同的主题)。

首先,对机器人攻击的恐惧实际上是一个初步警告。解析CSRF令牌(您无论如何都应该使用)和处理cookie会给攻击者带来足够的痛苦。我怀疑有人会不厌其烦地建立自己的OpenID提供商,这是唯一可以做到这一点的方法

其次,AppEngine的OpenID联合登录是用户API功能,而不是Go运行时的功能——您可以使用任何OP(Facebook、Yahoo!、Steam…Google)。用户API提供两种模式(可通过应用程序设置配置):OpenID联合登录和Google帐户登录。选择哪个取决于需求。如果您只需要用户的Google帐户,那么最好使用后者,如果是简单的无密码登录,那么选择OpenID。从应用程序的角度来看,两者看起来完全相同。不过,最好的方法是OAuth

回到这个问题上来,Google Accounts API和OAuth都将使此类攻击几乎不可能,而使用OpenID则更简单一些


首先,对机器人攻击的恐惧实际上是一个初步警告。解析CSRF令牌(您无论如何都应该使用)和处理cookie会给攻击者带来足够的痛苦。我怀疑有人会不厌其烦地建立自己的OpenID提供商,这是唯一可以做到这一点的方法

其次,AppEngine的OpenID联合登录是用户API功能,而不是Go运行时的功能——您可以使用任何OP(Facebook、Yahoo!、Steam…Google)。用户API提供两种模式(可通过应用程序设置配置):OpenID联合登录和Google帐户登录。选择哪个取决于需求。如果您只需要用户的Google帐户,那么最好使用后者,如果是简单的无密码登录,那么选择OpenID。从应用程序的角度来看,两者看起来完全相同。不过,最好的方法是OAuth

回到这个问题上来,Google Accounts API和OAuth都将使此类攻击几乎不可能,而使用OpenID则更简单一些


据我所知,GAE Go只使用谷歌账户。相应地编辑了我的问题。我的答案没有改变-我已经在第二段中介绍了这一点。不,AppEngine的OpenID支持适用于任何OpenID提供商;否则,在现有用户API上提供它就没有意义了。据我所知,GAE Go只使用谷歌账户。相应地编辑了我的问题。我的答案没有改变-我已经在第二段中介绍了这一点。不,AppEngine的OpenID支持适用于任何OpenID提供商;否则,在现有的用户API上提供它就没有意义了。那么,您对自动化流程对您的站点的影响有什么担心呢?这一切都是关于威胁模型和成本/效益权衡。当然,如果您支持OpenID,攻击者可以自动创建自己的OpenID提供程序,提供任意数量的用户。那么,您对自动化过程对站点的影响有何担心?这一切都是关于威胁模型和成本/效益权衡。当然,如果您支持OpenID,攻击者就可以自动创建自己的OpenID提供程序,提供任意数量的用户。