Sun*_*day 36 passwords https login http username
这个问题不是语言特定的. 我很好奇如何正确地从网站登录表单发送用户名和密码到服务器.
我的猜测是散列密码,将用户名/密码放在POST主体中并发送过来HTTPS
.什么是更好的方式?
为了更好的衡量,我会提到一种不太理想的方法:
http://www.somesite.com/login?un=myplaintextusername&pw=myplaintextpassword
Run Code Online (Sandbox Code Playgroud)
Jan*_*ger 53
重要的部分是你在POST主体中传输表单数据(这样它不会在任何地方缓存,也不会存储在任何日志文件中)并使用HTTPS(这样,如果你有一个好的SSL/TLS证书,没有人可以嗅出来观察网络流量的密码).如果你这样做,散列密码没有太大的额外好处,至少在传输过程中没有.
为什么人们会谈论哈希密码呢?因为通常您不希望以明文形式将用户密码存储在服务器端数据库中(否则受损服务器的影响甚至会比其他情况更糟).相反,您通常存储salted/hashed表单,然后将相同的salt/hash应用于通过表单数据接收的密码,以便您可以比较这两者.
有关盐析的更多信息,请参阅http://en.wikipedia.org/wiki/Salt_ ( cryptography)(以及那里的链接).
您应始终使用HTTPS并避免使用自制代码.SSL将负责散列和加密.这是唯一安全的方法.
还要确保您在服务器端散列密码并存储散列,而不是原始密码.然后比较哈希以检查登录.这样可以防止攻击者直接从您的数据库中读取明文密码,如果它被破坏了.
归档时间: |
|
查看次数: |
29632 次 |
最近记录: |