从Sencha开发的应用程序向网络服务器发送用户名和密码的最佳做法是什么?
它是否像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
}
});
我还应该考虑其他什么吗?喜欢安全吗?如果我使用上述方法,人们是否能够在应用程序(手机)和网络服务器之间嗅探用户名和密码?
答案 0 :(得分:3)
确保永远不会发送您的凭据,除非您有安全连接(SSL / HTTPS),否则您就可以了。
答案 1 :(得分:1)
使用安全连接并使用POST
方法将凭据发送到服务器,
如果您使用OAuth
或任何其他标准授权方法而不是其好处。
答案 2 :(得分:0)
即使您使用SSL,也不要将密码作为纯文本发送,而是发送密码的哈希值,并且只在服务器上存储密码的哈希值,如果可能的话,使用盐。这样,如果黑客进入存储密码的所有哈希的服务器数据库,他将不会获得密码列表,但是在大多数情况下,盐的哈希列表将是无用的。有时,用户在许多网站上使用相同的密码,想象一下,如果黑客进入您的服务器并获得明文密码列表,那么他有一个列表可以用来攻击其他网站上的许多其他帐户。因此,使用散列而不是明文密码是一种更好的做法。
TL; DR 通过SSL而不是明文密码发送密码哈希,并且不在服务器上存储明文密码,而是存储密码的哈希值盐。