2012-04-06 57 views
0

从Sencha开发的应用程序向Web服务器发送用户名和密码的最佳做法是什么?从应用程序向服务器发送用户名和密码的最佳做法

就像Ext.Ajax函数一样简单吗? (http://docs.sencha.com/touch/2-0/#!/api/Ext.Ajax)

Ext.Ajax.request({ 
    url: 'validation-username-password.php', 
    params: { 
     username: Bob, 
     password: pass123 
    }, 
    success: function(response){ 
     var text = response.responseText; 
     // process server response here 
    } 
}); 

是不是什么事我应该有什么想法?像安全吗?如果我使用上述方法,人们能够在应用程序(电话)和网络服务器之间嗅探用户名和密码吗?

回答

2

请确保您的凭证永远不会发送,除非您有安全连接(SSL/HTTPS),否则您会没事的。

+0

同意和+ 1ed。实际的Javascript代码与使用的协议无关(HTTPS是安全的,HTTP总是意味着可以嗅探密码)。 – Jay 2012-04-07 22:05:17

1

使用安全连接和使用POST发送凭证到服务器的方法, 如果您使用OAuth或任何其他标准授权方法比它的好。

-1

即使使用SSL,也不要以纯文本形式发送密码,而应发送密码的哈希值,并且还可以仅在服务器上存储密码的哈希值(如果可能的话使用盐值)。这样,如果黑客进入存储所有密码哈希的服务器数据库,他将不会得到密码列表,而是在大多数情况下使用含盐的哈希列表。有时候,用户在许多网站上使用相同的密码,想象如果黑客进入你的服务器并获得明文密码列表,那么他有一个列表,可以用来攻击其他网站的许多其他帐户。所以使用散列而不是明文密码是一种更好的做法。

TL; DR通过SSL而不是明文密码发送密码的哈希,并没有在服务器上存储明文密码,而不是密码的哈希值与盐一起存储。

+1

从客户端发送散列而不是真实密码不会以任何方式提高安全性。哈希如何知道攻击者,因为他知道客户端代码。他还可以在那里禁用哈希,并简单地发送哈希,而不先从密码生成哈希。什么都不会获得。重要的部分是服务器端哈希。结合SSL,这足够安全,以防止服务器信息泄漏时第三方嗅探和密码恢复。 – Sven 2012-10-04 19:25:09

+0

它在某些情况下确实有帮助。你只是重复了我说的话。 – scrafy 2013-02-13 14:41:06

+0

我的主要观点是,我反对你发送密码散列的提议。这是完全错误的。 – Sven 2013-02-13 21:09:31

相关问题