网页登录时密码如何传输?

今天突发奇想想看下一般网站登录时密码是如何传输的。

首先是QQMail,gmail,各大网上银行等对于我非常重要的登录网站:
https
https的安全性自然是很高。


其次是通常的腾讯微博以及其他腾讯常用的网页登录页面(比如opensns.qq.com):
http + 随机秘钥 + 密文(密码加密了)
首先客户端向服务器端发请求,服务器端返回一个临时密钥,然后js把用户输入密码加密,连同密钥一起提交给服务器验证。同一个密钥只能验证一次。
验证成功后,会往浏览器的cookie里写入skey,以后访问其他需要需要登录态网页携带cookie的skey便可。
网页登录时密码如何传输?_第1张图片 网页登录时密码如何传输?_第2张图片


最后是csdn以及人人网的登录验证页
只是简单的把用户提交的密码明文用POST请求发出去。更傻逼的是,csdn是通过get请求发送的!连post都懒得用!
shit。这岂不是很容易让那些proxy抓包得到我的帐号和密码?!特别是如果和别人在同一个局域网时。。。抓包分析流量就更方便了。
以下是fiddler在本机的抓包截图


参考:
1)网站密码一般是如何实现密文传输的
http://jp.v2ex.com/t/24668

重要结论摘要:
.明文HTTP传密码对普通网站的确很正常. 但是一想到随便 sniffer 一下, 或是中间任何 proxy 都能拿到你的密码明文, 会让人心里不舒服. 所以对这种明文传密码的网站最好别用比较机密的密码.
SSL证书也不贵,为啥不用SSL呢。。。如果是小站,不如直接用Google/Weibo/QQ登录。。也就是现在流行的站外登录:QQ互联等。
你可以前台加密后传输, 可以参考sina , qq等网站. 如:md5.js, 实现前台md5等不可逆加密.

2)密码传输问题
http://zhuoqiang.me/a/password-transport

3)密码存储问题

http://zhuoqiang.me/a/password-storage-and-python-example


转载自:http://blog.csdn.net/zdl1016/article/details/7234235

你可能感兴趣的:(登录)