一、随着计算机信息技术的高速发展,人们的生活、工作越来越依赖互联网上的信息发布和信息获取,但是人们却时刻被信息网络的安全隐患所困扰,越来越多的人也开始了关于网络、网站的安全性管理研究。
网站安全是指对网站进行管理和控制,并采取一定的技术措施,从而确保在一个网站环境里信息数据的机密化、完整性及可使用性受到有效的保护。网站安全的主要目标就是要稳妥地确保经由网站传达的信息总能够在到达目的地时没有任何增加、改变、丢失或被他人非法读取。要做到这一点,必须保证网站系统软件、数据库系统其有一定的安全保护功能,并保证网站部件如终端、数据链路等的功能不变而且仅仅是那些被授权的人们可以访问。
网站安全目前已发展成为一个跨学科的综合性学科,它包括通信技术、网站技术、计算机软件、硬件设计技术、密码学、网站安全与计算机安全技术等,网站安全是在攻击与防范这一对矛盾相互作用的过程中发展起来的。新的攻击导致必须研究新的防护措施,新的防护措施又招致攻击者新的攻击,如此循环反复,网站安全技术也就在双方的争斗中逐步完善发展起来。
二、网络与网站安全隐患概述
目前影响网站安全的问题主要来自于网络的不安全性,所以在这个意义上讲,网站的安全漏洞其实也就是网络的安全漏洞,其漏洞主要来自以下几个方面:
1.自然因素:
1.1软件漏洞
任何的系统软件和应用软件都不能是百分之百的无缺陷和无漏洞的,而这些缺陷和漏洞恰恰是非法用户、黑客进行窃取机密信息和破坏信息的首选途径。针对固有的安全漏洞进行攻击,主要在以下几个方面:
1.1.1、协议漏洞。例如,IMAP和POP3协议一定要在Unix根目录下运行,攻击者利用这一漏洞攻击IMAP破坏系统的根目录,从而获得超级用户的特权。
1.1.2、缓冲区溢出。很多系统在不检查程序与缓冲区之间变化的情况下,就接受任何长度的数据输入,把溢出部分放在堆栈内,系统仍照常执行命令。攻击者就利用这一漏洞发送超出缓冲区所能处理的长度的指令,来造成系统不稳定状态。
1.1.3、口令攻击。例如,Unix系统软件通常把加密的口令保存在一个文件中,而该文件可通过拷贝或口令破译方法受到入侵。因此,任何不及时更新的系统,都是容易被攻击的。
1.2病毒攻击
计算机病毒一般分为四类:①文件型病毒(FileViruses);②引导型病毒(SystemorBootSectorVirus);③链式病毒(SYSTEMorCLUSTERVirus);④宏病毒(MacroVirus)。计算机病毒的主要危害有:对计算机数据信息的直接破坏作用,给用户造成重大损失:占用系统资源并影响运行速度:产生其他不可预见的危害:给用户造成严重的心理压力。
计算机病毒疫情呈现出多元化的发展趋势,以网络为主要传播途径。呈现以下显著特点:①网络病毒占据主要地位;②病毒向多元化、混合化发展;③利用漏洞的病毒越来越多。
2、人为因素:
2.1操作失误
操作员安全配置不当造成的安全漏洞,用户安全意识不强.用户口令选择不慎.用户将自己的帐号随意转借他人或与别人共享等都会对网络安全带来威胁。这种情况在企业计算机网络使用初期较常见,随着网络管理制度的建立和对使用人员的培训,此种情况逐渐减少.对网络安全己不构成主要威胁。
2.2恶意攻击
这是计算机网络所面临的最大威胁,敌手的攻击和计算机犯罪就属于这一类。此类攻击又可以分为以下两种:一种是主动攻击,它以各种方式有选择地破坏信息的有效性和完整性;另一类是被动攻击,它是在不影响网络正常工作的情况下,进行截获、窃取、破译以获得重要机密信急。
当然作为本文最讨论的网站安全,它也有它自身的安全隐患存在,主要体现在以下几点:
3.用户输入验证不全面
在网站编程中,对于用户和用户的输入,都必须抱怀疑态度,不能完全信任。所以,对于用户的输入,不能简单的直接采用,而必须经过严格验证,确定用户的输入是否符合输入规则才可以录入数据库。用户输入验证应该包括以下几个方面:
(1)输入信息长度验证。程序员往往认为一般用户不会故意将输入过分拉长,不进行输入验证可能没有危害。但如果用户输入的信息达到几个兆,而程序又没有验证长度的话,可以使程序验证出错或变量占用大量内存,出现内存溢出,致使服务器服务停止甚至关机。论文网在线
(2)输入信息敏感字符检查。在设计程序的时候,程序员可能都会关注javascript的一些敏感字符,如在设计留言版的时候,会将“<”等符号的信息过滤,以免用户留下页面炸弹。但还有以下几个方面需要特别注意,一是留言版内容信息的过滤。二是用户名信息的过滤。程序设计中,对用户名的验证往往只是验证长度,没有验证javascript或者HTML的标记,这样就容易形成漏洞。三是Email信息的验证,Email信息往往也只验证是否含有“@”符号,其他没有限制,这容易形成两个漏洞:输入信息过长的内存溢出漏洞;含有javascript等字符信息,造成显示用户Email的时候形成页面炸弹等。四是搜索信息的验证。尽管搜索信息不会直接保存到网站服务器,但是,搜索信息却与数据库或者服务器所有文件密切相关,如果搜索信息有问题,很容易就会暴露一些本来不应该暴露的数据库信息或者文件信息。如果用户对程序比较了解,可设计一些很特别的搜索信息,检索他不应该检索的数据库表,例如用户账号密码表等。因此,一般要验证一些常见的用于数据库操作的语句,例如搜索信息是否含有“Select”等,这样来限制用户输入,避免信息的泄露。
4.页面行为方式缺乏逻辑
在网站中注册新用户的时候,一般会首先要求用户输入自己需要注册的账号信息,验证该账号是否已经存在,确保用户的单一性。如果用户的注册信息通过了“存在该账号”的检测,在编程的时候就认为这个账号一定不存在,可以注册,在注册页面中直接使用“nsertInto”语句将注册信息插入用户数据库。上述的问题是:将注册信息插入数据库之前,并没有再一次检查这个用户是否存在,而是信任前一个检测页面传来的账号信息。由于可以阅读和保存HTML文件的源代码,如果用户将注册通过的页面保存并且将上面的账号信息修改为一个已经存在的账号,由于程序认为该账号已经通过检测,直接将该账号插入数据库,原来拥有该账号的用户信息就被修改,造成用户信息流失、出错等情况的发生。如果这个账号刚好是一个管理员账号,结果将是很难预料的。
本文来源:https://www.010zaixian.com/shiyongwen/2652772.htm