Web程序认证安全防护知多少

| 2019-05-17

Web的安全防护已经讲过一些知识了,下面继续说一下安全防护中的密码传输、敏感操作二次认证、客户端强验证、认证的错误消息、防止暴力破解、日志与监控等。
一、密码传输
登录页面及所有后组需要认证的页面必须通过SSL、TSL或其他的安全传输方式进行访问,初始登录页面必须使用SSL、TSL访问,否则攻击者可能会更改登录表单的action属性,导致用户登录凭证泄露,如果登录后未使用SSL、TSL访问认证页面,攻击者坑内会窃取未加密的会话ID,从而危及用户当前活动会话,同事,还应该尽可能对密码进行二次加密,然后在进行传输。
 
二、敏感操作二次认证
为了减轻CSRF、会话劫持等漏洞的影响,在更新账户敏感信息(如用户密码,电子邮箱,交易地址等)之前需要验证账户的凭证,如果没有这种策略,攻击者不需要知道用户的当前凭证,就能通过CSRF、XSS攻击执行敏感操作,此外,攻击者还可以临时接触用户设备,访问用户的浏览器,从而窃取会话Id来接管当前会话。
 
三、客户端强验证
应用程序可以使用第二因素来检测用户是否可以执行敏感操作,典型示例为SSL、TSL客户端身份验证,又称SSL、TSL双向校验,该校验由客户端和服务端组成,在SSL、TSL握手过程中发送各自的证书,就像使用服务端证书想证书颁发机构(CA)校验服务器的真实性一样,服务器可以使用第三方CS或自己的CA校验客户端证书的真实性,为此,服务端必须为用户提供为其生成的证书,并为证书分配相应的值,以便用这些值确认证书对应的用户。
 
四、认证的错误信息
认证失败后的错误信息,如果未被正确实现,可被用于枚举用户ID与密码,应用程序应该以通用的方式进行相应,无论用户名还是密码错误,都不能表名当前用户的状态。
 
错误的相应示例:
 
登录失败,无效密码;
登录失败,无效用户;
登录失败,用户名错误;
登录失败,密码错误;
 
正确的相应示例:
 
登录失败,无效用户名或密码
 
某些应用程序返回的错误信息虽然相同,但是返回的状态码却不相同,这种情况下也可能会暴露账户的相关信息。
 
五、防止暴力破解
在Web应用程序上执行暴力破解是一件非常容易的事情,如果应用程序不会由于多次认证失败导致账户禁用,那么攻击者将有机会不断地猜测密码,进行持续的暴力破解,直至账户被攻陷。普遍的解决方式有多因素认证、验证码、行为校验(阿里云、极验等均提供服务)
 
六、日志与监控
对认证信息的记录和监控可以方便的检测攻击和故障,确保记录以下3项内容:
 
1、 记录所有登录失败的操作;
 
2、 记录所有密码错误的操作;
 
3、 记录所有账户锁定的登录;

编辑:admin 来源:未知 本文版权归原作者所有 转载请注明出处