目录
目录X

动易SiteFactory快报——安全篇

  随着各种病毒、木马、后门和攻击手段的层出不穷,网站的安全问题也越来越成为一个令站长和管理员们头疼的问题。这使得站长们越来越重视系统的安全系数。而网站系统的开发人员们,也同样越来越重视程序的安全性。

  动易公司从一开始就高度重视系统的安全性,在程序的开发中,有大量的时间投入和性能投入都是涉及网站安全的。在SiteFactory 版中,开发团队更是充分利用。NET平台的新特性,采用了大量的新技术来保障网站安全。这次我们就简单介绍一下SiteFactory 版在安全性方面所做的努力。

  原来2006版所采用的各种安全保障措施,经过实践得到验证的手段在2007版中全部得到了保留继承:

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

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

  在这里我们稍加说明:

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

  除了从2006版保留继承的安全措施以外,2007版又针对安全问题做了非常多的工作,基于。NET的动易SiteFactory 版,安全性比2006版有了极大的提高。

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

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

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

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

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

  除了这些以外,动易SiteFactory 开发团队还在继续研究和实践更多的安全措施。最终的发布版本将会更加安全:

  • 尚未最后完成的增强版日志记录。详细跟踪记录用户操作异常和部分系统异常,让站长和安全人员能通过日志分析系统可能存在的漏洞和bug,有针对性地进行防范和完善。
  • 开发团队仍在继续努力,虽然对跨站脚本攻击,采取了一些措施进行限制,但还未从根本上解决,动易开发团队的目标是力争彻底解决。
  • 计划利用密码强度限制,排除存在弱密码的可能性。很多时候网站的密码被盗取,往往是由于密码不够复杂,容易被暴力破解造成的。除了在防暴力破解方面采取措施外,设置强密码才是关键。动易CMS 2007开发团队计划在密码强度限制方面为站长提供更安全的限制手段。
  • 开发团队正在研究使用SSL来加密数据传输;SSL加密是很多安全性要求高的网站(例如网上银行、在线交易等)广泛采用的手段。一旦普通网站能够得到该技术支持,针对高级入侵和数据伪造、数据挟持等手段的安全系数也会得到极大提升。

  这次的快报,我们用很大的篇幅来介绍了动易SiteFactory 版在安全方面所做的改进,安全防范是一个复杂的、涉及面极广的负责工程,所以快报中的介绍也只能是简单概述,但是可以明确的是:动易SiteFactory 版绝对是一个在安全方面空前强大的系统。也证明了动易公司和动易开发团队对于网站安全的重视程度和所做出的不懈努力。

【打印正文】 发布时间:2007-05-12 15:18:16 浏览次数: 作者:小李刀刀 来源:本站原创
×

用户登录