web应用安全check list

首先对本文所指的web应用做一下定义,包含如下两种类型的应用

  • B/S应用,即browser通过页面超链接/提交表单/ajax和server交互

  • C/S应用,即ios/android手机应用或者PC应用通过webservice和server交互


我把check list分为client端和sever端两类,以后会陆续更新check list。

Client:

  • 规定时长里用户没有任何操作(对android app, ios app来说还包括应用被切换到后台后),客户端需要自动logout并跳转到login界面。原因是用户可能停留在一个保留敏感信息的界面,导致之后的陌生人可以在未经授权的情况下看到这些敏感信息(由于主人长时间离开或者丢失手机)。

  • 不在client记录任何用户敏感信息,例如密码,信用卡号。

Server:

  • 检查application server是否为已经打完所有已知的安全补丁。

  • 检查application server和code是否用了足够强的加密算法/协议(例如SSL/TLS协议版本,MD5/SHA1算法长度,RSA/DES加密算法长度)。

  • 如果支持https协议,设置cookie为secure

  • 检查应用和服务器的log,确保mask了任何包含用户敏感信息(密码,信用卡号,有效期等)的内容。

  • 遵循最小权限原则,配置防火墙,只对internet开放必须的端口和url。

  • 对于非法权限访问和不存在的页面的访问,都返回404。这样做可以防止黑客通过扫描常用url得知哪些url存在,哪些不存在,进而集中精力攻击那些存在的url。

  • server返回结果中避免暴露server信息(例如操作系统名称,服务器版本等),这些信息有助于黑客进行攻击。

  • 设置最长session时间(例如3小时),这样可以防止黑客在获得cookie中的sessionid后不停地访问服务器以保持session永远不过期。

  • 设置cookie为httponly

  • client的任何请求均视为不可信任,确保所有client端已经有的验证都有对应的server端验证(检验方法:用hack代码模拟client, 跳过client验证,发送未经client验证的请求到server)

  • 反钓鱼




你可能感兴趣的:(web应用安全check list)