请求具有敏感数据的服务器

时间:2013-03-30 21:15:57

标签: google-chrome-extension security httprequest password-protection

在我的Chrome扩展程序中,我向我的服务器发出请求,其中包含敏感信息,即用户的电子邮件和密码,以便将其记录到服务中。一个天真的方法是提出类似

的请求
www.myserver.com/login?email=email&pass=pass. 
然而,这看起来很可怕。执行此操作的标准,安全方法是什么?

1 个答案:

答案 0 :(得分:3)

标准的安全方式是使用加密通道,例如HTTPS。这样,只会看到与https://myserver.com的连接,并且GET /login?email=email&pass=pass请求将被加密。 但是,通过仅通过GET请求的参数进行身份验证,您必须在您要访问的每个页面上随身携带它。 通常这可以通过服务器为您提供一个身份验证令牌(例如cookie)来解决,该令牌允许您在登录时访问一段时间。 这种访问令牌通常称为“会话”。它的实现方式差异很大,但通常归结为给你一种密钥来换取有效的登录。

获取有效会话的其他方法包括以明文形式发送用户名,并将密码作为派生密钥发送,例如播种和散列。

如果我的答案中有些内容你不理解,请对其进行评论,我会详细说明或提供更多例子:)

修改

  

在后端,我正在使用来自werkzeug的标准salt + hash   python库。如果JS执行相同的操作然后通过   沿着派生密码,这就足够了吗?

是。如果你执行salt + hash方案,你可以使用你想要的任何JS库。我经常只使用本机XmlHTTPRequest来完成它。

  

另外,您的第一个建议是使用HTTPS。如果我走那条路   返回会话密钥,什么阻止某人窥探   会话密钥?

如果您使用SSL,是什么阻止某人嗅探会话?好吧加密有希望:)一旦建立了SSL连接,你和服务器之间来回的一切都将被加密,所以没有什么可以窥探。 如果没有加密,这就成了一个大问题。当Firebug出来时(还是Firesheep?),还记得有关facebook和嗅探会话cookie的所有模糊信息吗?

当然,您的SSL隧道可能会成为中间人的牺牲品,但像这样的公钥基础设施是您获得的最佳选择。 SSLv3最近被认为是安全的。