网站故障报告

        目前影响网站安全的问题主要来自于网络的不安全性,所以在这个意义上讲,网站的安全漏洞其实也就是网络的安全漏洞,其漏洞主要来自自然因素和人为因素两个方面。自然因素主要包括软件漏洞和病毒攻击;人为因素主要包括四个方面,具体如下: 

1、 操作失误  

        操作员安全配置不当造成的安全漏洞,用户安全意识不强.用户口令选择不慎.用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。这种情况在企业计算机网络使用初期较常见,随着网络管理制度的建立和对使用人员的培训,此种情况逐渐减少.对网络安全己不构成主要威胁。  

2、 恶意攻击  

        这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下,进行截获、窃取、破译以获得重要机密信急。  

3、 用户输入验证不全面  

        这是网站自身存在的安全隐患,在网站编程中,对于用户和用户的输入,都必须抱怀疑态度,不能完全信任。所以,对于用户的输入,不能简单的直接采用,而必须经过严格验证,确定用户的输入是否符合输入规则才可以录入数据库。

用户输入验证应该包括以下几个方面:  

        (1)输入信息长度验证。程序员往往认为一般用户不会故意将输入过分拉长,不进行输入验证可能没有危害。但如果用户输入的信息达到几个兆,而程序又没有验证长度的话,可以使程序验证出错或变量占用大量内存,出现内存溢出,致使服务器服务停止甚至关机。   

        (2)输入信息敏感字符检查。在设计程序的时候,程序员可能都会关注JavaScript的一些敏感字符,如在设计留言版的时候,会将“”等符号的信息过滤,以免用户留下页面炸弹。 

4、 页面行为方式缺乏逻辑   

        在网站中注册新用户的时候,一般会首先要求用户输入自己需要注册的账号信息,验证该账号是否已经存在,确保用户的单一性。如果用户的注册信息通过了“存在该账号”的检测,在编程的时候就认为这个账号一定不存在,可以注册,在注册页面中直接使用“nsertInto”语句将注册信息插入用户数据库。上述的问题是:将注册信息插入数据库之前,并没有再一次检查这个用户是否存在,而是信任前一个检测页面传来的账号信息。由于可以阅读和保存HTML文件的源代码,如果用户将注册通过的页面保存并且将上面的账号信息修改为一个已经存在的账号,由于程序认为该账号已经通过检测,直接将该账号插入数据库,原来拥有该账号的用户信息就被修改,造成用户信息流失、出错等情况的发生。如果这个账号刚好是一个管理员账号,结果将是很难预料的。   

二、 网站安全管理策略  

        网站安全管理主要从网络安全管理、服务器安全管理、数据库安全管理以及编码安全管理四个方面考虑。现在主要介绍数据库和编码安全管理:  数据库安全管理   数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄密和破坏。为了保证业务应用系统后台数据库的安全性,采用基于Client/Server模式访问后台数据库,为不同的应用建立不同的服务进程和进程用户标识,后台数据库系统以服务器进程的用户标识作为访问主体的标识,以确定其访问权限。我们通过如下方法来实现后台数据库的访问控制:   

1、 访问矩阵   

        访问矩阵就是以矩阵的方式来规定不同主体(用户或用户进程)对于不同数据对象所允许执行的操作权限,并且控制各主体只能存取自己有权存取的数据。它以主体标行,访问对象标列,访问类型为矩阵元素的矩阵。Informix提供了二级权限:数据库权限和表权限,并且能为表中的特定字段授予Select和Update权限。因此,我们在访问矩阵中定义了精细到字段级的数据访问控制。   

2、 视图的使用   

        通过视图可以指定用户使用数据的范围,将用户限定在表中的特定字段或表中的特定记录,并且视图和基础表一样也可以作为授权的单位。针对不同用户的视图,在授权给一用户的视图中不包括那些不允许访问的机密数据,从而提高了系统的安全性。   

3、 数据验证码DAC   

        对后台数据库中的一些关键性数据表,在表中设置数据验证码DAC字段,它是由银行密钥和有关的关键性字段值生成。不同记录的DAC字段值也不相同。如果用户非法修改了数据库中的数据,则DAC效验将出错,从而提高了数据的安全性。