我们结合了上面说的几种方式的同时,加上了手机验证码的验证模式,基本上可以阻止相当多的一部分恶意攻击者。但是没有系统是绝对安全的,我们只能够尽可能的增加攻击者的攻击成本。大家可以根据自己网站的实际情况来选择合适的策略。 + ]8 ~0 _; e4 H6 `8 y8 Z5 E二、中间人攻击 8 e! A. `8 G% u% g4 d& j" o什么是中间人攻击4 z5 r n$ X6 B* A" c
中间人攻击(man-in-the-middle attack, abbreviated to MITM),简单一点来说就是,A和B在通讯过程中,攻击者通过嗅探、拦截等方式获取或修改A和B的通讯内容。 k$ |' W, i. p( b: [
举个栗子:小白给小黄发快递,途中要经过快递点A,小黑就躲在快递点A,或者干脆自己开一个快递点B来冒充快递点A。然后偷偷的拆了小白给小黄的快递,看看里面有啥东西。甚至可以把小白的快递给留下来,自己再打包一个一毛一样的箱子发给小黄。/ ^2 G1 o1 Y1 I$ C
那在登录过程中,如果攻击者在嗅探到了从客户端发往服务端的登录请求,就可以很轻易的获取到用户的用户名和密码。) P0 n2 N5 n) u4 K4 m( k
HTTPS 4 |9 _9 t- w- s5 p5 b4 s. r 防范中间人攻击最简单也是最有效的一个操作,更换HTTPS,把网站中所有的HTTP请求修改为强制使用HTTPS。, g9 a3 F+ u2 E
为什么HTTPS可以防范中间人攻击? 1 `5 j: u! E; N' k, }3 E* y" Y HTTPS实际上就是在HTTP和TCP协议中间加入了SSL/TLS协议,用于保障数据的安全传输。相比于HTTP,HTTPS主要有以下几个特点: 1 |8 H# M/ ?3 m& l' ~- y7 A
内容加密
数据完整性 . p" D8 T& ?- T5 z9 Q( j2 V
身份验证 + @% A) F B7 R9 r2 u 具体的HTTPS原理这里就不再扩展了,大家可以自行Google2 I. s2 g+ B: i! h6 I1 ]# E
加密传输 ' h1 @( Y! _4 p1 q" c: g9 k 在HTTPS之外,我们还可以手动对敏感数据进行加密传输:+ Q* C8 } k b0 l1 |/ }8 D
用户名可以在客户端使用非对称加密,在服务端解密
密码可以在客户端进行MD5之后传输,防止暴露密码明文2 S& f# ^# j4 u' v
三、其它$ ]2 }& ~9 i4 i/ i
除了上面我们聊的这些以外,其实还有很多其它的工作可以考虑,比如: 1 U" b/ P' W3 B& I5 I0 X3 m7 ?