引言 应用程序安全涵盖面很广,它类似于 OSI网络分层模型也存在不同的安全层面。上层的安全只有在下层的安全得到保障后才有意义,具有一定的传递性。所以当一个应用系统宣称自己是安全的系统之前,必须在不同层都拥有足够的安全性。 图 1:安全多层模型 位于安全堆栈最底层的就是传输层和系统认证的安全,考虑不周,将会引入经典的中间人攻击安全问题。再往上,就是借由防火墙,VPN或 IP安全等手段保证可信系统或 IP进行连接,阻止 DoS攻击和过滤某些不受欢迎的 IP和数据包。在企业环境下,我们甚至会用 DMZ将面向公网的服务器和后端的数据库、支持服务系统隔离。此外,操作系统也扮演着重要的角色,负责进程安全,文件系统安全等安全问题,操作系统一般还会拥有自己的防火墙,也可以在此进行相应的安全配置,此外,还可以部署专业的入侵检测系统用于监测和阻止各种五花八门的攻击,实时地阻止 TCP/IP数据包。再往上的安全就是 JVM的安全,可以通过各种安全设置限制仅开放足够使用的执行权限。最后,应用程序自身还必须提供特定问题域的安全解决方案。本文就以漫谈的方式聊聊应用系统本身的安全问题。 1、应用系统安全涉及哪些内容 1)系统级安全 如访问 IP段的限制,登录时间段的限制,连接数的限制,特定时间段内登录次数的限制等,象是应用系统第一道防护大门。 2)程序资源访问控制安全 对程序资源的访问进行安全控制,在客户端上,为用户提供和其权限相关的用户界面,仅出现和其权限相符的菜单,操作按钮;在服务端则对 URL程序资源和业务服务类方法的的调用进行访问控制。 3)功能性安全 功能性安全会对程序流程产生影响,如用户在操作业务记录时,是否需要审核,上传附件不能超过指定大小等。这些安全限制已经不是入口级的限制,而是程序流程内的限制,在一定程度上影响程序流程的运行。 4)数据域安全 数据域安全包括两个层次,其一是行级数据域安全,即用户可以访问哪些业务记录,一般以用户所在单位为条件进行过滤;其二是字段级数据域安全,即用户可以访问业务记录的哪些字段; 以上四个层次的安全,按粒度从粗到细的排序是:系统级安全、程序资源访问控制安全、功能性安全、数据域安全。不同的应用系统的系统级安全关注点往往差异很大,有很大部分的业务系统甚至不涉及系统级安全问题。无明显组织机构的系统,如论坛,内容发布系统则一般不涉及数据域安全问题,数据对于所有用户一视同仁。 不同的应用系统数据域...