web应用登录的一个疑点

web应用登录的一个疑问
你们的web应用是怎样登录系统的?
我的意思就是,在常规的用户名口令模式下,从前台把用户名密码传到后台的过程,都会有哪些方式啊?
我所知道的就是在前台用户点击登录的时候,将密码MD5一下,和用户名一起传给服务器,在服务器的数据库中一般也存贮的是密码的MD5值,对比校验判定登录结果
我的疑问就在这里了,我简单用文字写一下上面的流程
明文用户名、明文密码-------》明文用户名、md5后的密码-----》发送到服务器-------》服务器校验--------》返回结果

我的疑问就是,如果用户点击了登录,这个时候你将明文的用户名和密码的md5值发送给服务器的过程中被抓包了,那是不是就意味着抓你包的人,以后可以通过程序模拟一个一样的请求发给服务器,而服务器根本无法辨识这个包到底是来自真实的用户还是黑客的模拟。
 
不知能不能看懂我说的。
------解决思路----------------------
理论上是这样的。你可以在网页中加入些判断,比如监听浏览器网页打开的时间啊,是否有鼠标动作,或者画面操作,从而区分是 机器模拟还是用户登录。

------解决思路----------------------
完全的安全的http通信很难做到,只能通过技术一点点的向安全靠近


普通http协议不够安全,使用安全的http通信能好一些,也就是https,给http传输中添加一个安全层
在发送http报文之前,客户端和服务器要进行一次SSL握手,握手中,会交换协议版本号,选择密码,对身份进行认证,生成临时的会话秘钥,以便加密信道。

建议楼主看看《http权威指南》,里面对这个讲解的比较细致
------解决思路----------------------
https你去看看
整个通讯过程都加密了才安全
不然就是不安全的
加密手段有很多种 
------解决思路----------------------
引用:
Quote: 引用:

12306  也是ssl 的。 https://kyfw.12306.cn/otn/leftTicket/init


你的意思是,12306也是SSL的,但是一样没有解决这个问题,还是存在着这么多的刷票软件???


双向SSL可以完全解决这个问题。对于安全级别要求较高的客户用这个就行。

举个例子:你明文信息+对明文加密的密文送到服务器端,服务器端对密文解密,再比对和明文是否一致,如果一致就算校验通过。

更高级的做法,证书进硬件设备(类似U盾,或者密码器),把硬件设备的操作信息加入到签名信息中,这样保证单次操作只有效一次。