我认为这是一个简单的问题。
如果我在appengine中使用google用户帐户
from google.appengine.api import users
对我的用户进行身份验证,我的应用程序在http(而不是https)下的其余部分是多么安全,即。这种设置的弱点在哪里?
谢谢
答案 0 :(得分:4)
假设您通过http发送的任何内容都可以被攻击者拦截和检查。这包括您在浏览器中存储的任何令牌以验证它们 - 攻击者也可以看到它,并使用它来伪造请求。
如果这听起来像是一个您不需要担心的“理论上”漏洞,那么在您阅读FireSheep并理解其工作原理之前,您不应该做任何涉及保护用户数据的事情。你怎么会阻止类似的东西。 (这只是您需要了解的攻击的一个示例。它不是唯一可能的攻击。)
简而言之,这种设置的弱点在于您使用http发送任何想要保密的内容。
答案 1 :(得分:2)
您的问题尚不清楚,但如果您询问在HTTP应用上使用Google帐户验证用户是否可能会向攻击者公开密码,则答案是否定的。
即使您的应用未使用SSL,密码也绝不会以纯文本形式传输。身份验证开始后,用户将被重定向到google.com上的安全页面以输入其凭据。凭据通过SSL发布,如果身份验证成功,Google会生成一个身份验证令牌,该令牌会传递回您的应用并存储在Cookie中。 Users API生成内部RPC以将此令牌解析回Google凭据。
攻击者可以做的最多就是拦截身份验证令牌,并在令牌有效期内欺骗用户(默认为1天;最多可配置2周)。他们永远无法访问密码。为了防止欺骗,您需要确保所有登录的活动都在HTTPS上进行,并且永远不会通过HTTP存储auth cookie。