web应用安全check list

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

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

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


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

Client:算法

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

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

Server:cookie

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

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

  • 若是支持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)

  • 反钓鱼

相关文章
相关标签/搜索