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

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

首先是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

你可能感兴趣的:(加密,服务器,ssl,腾讯,Gmail)