如今,Web业务平台已经在电子商务、企业信息化、政府门户网站等得到广泛应用,很多企业都将应用架设在Web平台上,Web业务的迅速发展也引起了黑客们的强烈关注,他们将注意力从以往对传统网络服务器的攻击逐步转移到了对 Web 业务的攻击上。黑客利用网站操作系统的漏洞和WEB服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。

众所周知,TCP/IP的设计是没有考虑安全问题的,这使得在网络上传输的数据是没有任何安全防护的。攻击者可以利用系统漏洞造成系统进程缓冲区溢出,攻击者可能获得或者提升自己在有漏洞的系统上的用户权限来运行任意程序,甚至安装和运行恶意代码,窃取机密数据。而应用层面的软件在开发过程中也没有过多考虑到安全的问题,这使得程序本身存在很多漏洞,诸如缓冲区溢出、SQL注入等等流行的应用层攻击……这些均属于在软件研发过程中疏忽了对安全的考虑所致。程序代码中的漏洞被利用,攻击者能够利用它,把恶意代码强行插入到被攻击的网站里。还有一种,就是跨站脚本攻击XSS/CSS (Cross Site Script) attack。它利用网页及cookies漏洞,攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。比如通过跨站构造一个表单,表单的内容则为利用程序的备份功能或者加管理员等功能得到一个高权限。通过这二类方法攻击者恶意篡改首页地址、屏蔽锁定、IE搜索引擎被修改、强行添加非法网站地址链接、甚到可在用户电脑上利植木马、下载病毒和蠕虫、关闭反防毒软件程序、远程访问和控制用户电脑,从而导致用户电脑崩溃和网络不畅。

很多恶意攻击者出于不良的目的对Web 服务器进行攻击,想方设法通过各种手段获取他人的个人账户信息谋取利益。正是因为这样,Web业务平台最容易遭受攻击。同时,对Web服务器的攻击也可以说是形形色色、种类繁多,常见的有挂马、SQL注入、缓冲区溢出、嗅探、利用IIS等针对Webserver漏洞进行攻击。

Web业务平台的不安全也在很大程度上取决于内部原因,这使得站长们越来越重视系统的安全系数。而网站系统的开发人员们,也同样越来越重视程序的安全性。我们从一开始就高度重视系统的安全性,在程序的开发中,有大量的时间投入和性能投入都是涉及网站安全的。在YD DotNetCms版中,开发团队更是充分利用NET平台的新特性,采用了大量的新技术来保障网站安全。我们就简单介绍一下YD DotNetCms 版在安全性方面所做的努力。

  1. 用户密码等关键数据采用MD5不可逆加密后保存;
  2. 后台启用验证码和认证码;
  3. 后台Admin目录可以更改目录名;
  4. 禁止直接访问和外部链接到后台页面;
  5. 对上传文件类型进行检查,并删除黑名单中列出类型的文件;
  6. 对非HTML的表单进行编码后再存入数据库;
  7. 对SQL查询语句中的查询参数进行过滤。
  8. 跨站脚本攻击;
  9. 跨站请求伪造;
  10. 越权操作

  这些手段,经过长期实践验证,确实能够有效提高网站的安全性,因此在YD DotNetCms 版中全部得到了保留和改进。网友可能会对MD5加密和验证码的作用提出质疑,因为“2004年MD5算法已经被中国科学家破译”、“开启了验证码后,网站仍然出现批量注册的用户和大量重复信息、广告信息”等等。

  在这里我们稍加说明:

  MD5加密算法在数据加密领域得到广泛应用,是一种有效的保存关键信息的有效手段。2004年,中国科学家“破译”了MD5算法,但这并不意味着你拿到一个经过MD5算法加密后的字符串后,能够逆向得到加密前的字符串。而我们采用MD5保存用户密码等数据信息,目的只是在于当数据库被别人得到后,不能得到用户的原始密码。至于破解,即使在MD5算法没有被“破译”的时候,一旦得到了加密结果,理论上通过暴力破解等手段,也同样能够得出密码。因此采用MD5加密存储关键信息,在网站管理系统中,仍然是一个有效的安全手段。图像验证码功能已经被广泛应用于网站的注册、登录、信息发表等需要防止暴力破解的地方。而且也确实是一个有效的防暴力破解手段(防垃圾信息和重复信息,依靠验证码是不可能彻底杜绝的)。动易首创的后台登录认证码手段,在确保服务器安全的前提下,彻底断绝了通过盗取管理员密码进入后台的途径。和其它安全措施相结合,能够非常有效地保护网站后台的权限不被非法利用。

  微软的ASP.NET 2.0平台和SQL Server 2005针对安全威胁,提供了大量的新特性。而YD DotNetCms充分利用了这些新特性,为提高网站的安全系数,采用了大量的手段和措施:

  1. 采用多层结构,避免表现层直接与数据层交互,有效提高后端数据的安全;
  2. 使用类型安全的SQL参数化查询方式,从根本上解决SQL注入的问题;
  3. 利用验证控件,加强表单的客户端验证;
  4. 利用ASP.NET的HttpModule,从整体上限制直接访问和外部链接并判断是否登录,避免遗漏;
  5. URL参数类型、数量、范围限制功能,解决恶意用户通过地址栏恶意攻击的问题;
  6. 全站和管理后台的IP访问限定功能,以实现权限和访问的最小化原则;
  7. 网站的配置信息保存在Site.config文件,。config文件是默认拒绝访问的文件类型,以避免配置信息泄密;
  8. 对程序集进行混淆加密,避免恶意用户通过反射利用代码漏洞进行攻击;
  9. 利用web.config中配置的自定义错误页和全局的异常处理,屏蔽异常出现时暴露的敏感信息;
  10. 对连接字符串进行加密,在配置信息泄密后保护数据库连接的敏感信息。

  有兴趣的网友可以通过搜索上面列表中的关键词来了解更多相关的信息。我们这里就只做一下简单的介绍:首先是多层结构开发,这个在以往的快报中已经介绍过了。为什么采用多层结构能够提高安全性呢?简单来说,网站的访问者在访问网站时,仅仅是与表现层交互,而表现层的界面呈现,是由业务逻辑层来完成,业务逻辑层和数据层之间,使用各种实体来进行数据的交流。只有数据层才直接对数据库进行操作。通过表现层提交的各种表单,首先要经过动易系统的过滤,成为业务层可用的参数。而这些参数又要转换成各个实体的属性,数据层还要将这些实体和属性转换成查询参数后,才用与数据查询。这样就最大程度地防止了SQL注入类的攻击(。NET环境下的各种编程语言都要求强类型变量,也就意味者像整数型的查询参数,如果传送一个非整数型的参数,是绝对不能通过的)。而在YD DotNetCms 的数据层,完全采用带有参数的结构化查询,从根本上解决了SQL注入问题。

  其次,ASP.NET的表单处理方式,在服务器端编程绝大部分时候采用的是读取服务器控件属性而非GET方式提交的表单值(提取过程是由。NET来转换实现),使得伪造表单数据攻击比ASP环境下要困难得多。YD DotNetCms 在ASP.NET自身提供的强大验证控件的基础上加以继承和发展,开发出了更多、更强大的验证控件。可以在客户端、服务器端对表单提交的数据合法性进行更严格的验证。

  另外,除了禁止直接输入地址访问关键页面外,YD DotNetCms 还对URL参数的类型、范围等做出了严格限制和过滤,更基于ASP.NET的HttpModule,整体限制对指定范围内的路径进行直接访问和外部链接,有效防范跨站脚本攻击。结合超前强大的权限分配和IP限制,站长完全可以确保非指定人员绝对不能越权访问后台相关功能。

  除了这些以外,我们还在一下方面做出了努力,取得阶段性成果:

安全防范是一个复杂的、涉及面极广的负责工程,在这里也只能是简单概述,但是可以明确的是:YD DotNetCms是一个在安全方面空前强大的系统。

如何发现网站安全问题(网站安全解决方案)(1)

YD DotNetCMS

此外,对于Web安全和防止网页篡改,还需要对于系统漏洞和应用程序漏洞有深刻认识,基于系统和应用程序来做专门的Web服务和网页防范措施及工具。总结了以下六条帮助应对Web安全威胁:(1)找出系统的安全漏洞,及时升级最新补丁;(2)对动态网页实施的保护,在保护静态网页的同时保护网站脚本和后端数据库;确认脚本许可只赋予仅仅包含存在问题脚本的独立目录;(3)网页文件保护策略, 网页写保护,主动防御恶意代码,防跨站攻击,高效URL过滤技术(防止SQL注入),优化Web性能和安全加固,双机热备;(4)锁定文件、目录和其他系统资源,设置Web服务器或守护进程运行最低数量的优先权,使应用程序使用最少的特权运行,不信任来自用户甚至数据库的任何信息有助于防止脚本利用,每当您从不可信的源获得信息时,都要确保它不包含任何可执行代码方可进行处理;(5)使用网页防篡改和恢复软件;(6)做好服务器应用程序本身安全防护,避免漏洞;删除不需要的应用程序。

针对Web应用的安全产品,可以分为网络、Web服务器自身以及程序安全三方面。在网络方面,可以考虑将防火墙、IDS/IPS、安全网关、防病毒墙、网站保护墙等产品部署在Web服务器前面,这样可以防御大部分的攻击。此外,可以通过部署更安全的Web服务器、Web服务器自身的保护系统,比如网页防篡改保护系统(防篡改保护和恢复软件)、恶意主动防御系统、访问控制系统、审计系统等产品,做到自动扫描和监控,从而保护系统和文件。

,