• Designed by cwdkg in 2007
  • Procedure by TaFanSei in 2007
  •  
     
    当前位置:28ke工作室 > 教程 > asp网站安全性探讨
     
     
    asp网站安全性探讨
          做网站,很多人会想到ASP,但一考虑安全,又会有很多人会放弃ASP,去选所谓更安全的JSP或PHP。真的ASP安全很差吗?其实不然。
      以前,IIS+ASP的确出很多的漏洞,Unicode、.htc等全洞洞,但这些对勤快的网管理来说,都己经不是问题了。我们可以看到,现在,攻击者对服务器的攻击大多转向客户端攻击,这些说明,IIS+ASP的安全性也大大提高了,一般的攻击者己经不能从服务器攻击中得到什么好处了。
      但是,这只是IIS+ASP的服务己经很安全了,但并是不是说IIS+ASP是安全的,因为还是ASP程序,写这些程序的朋友可能会写出漏洞出来(其它任何编程工具,程序员都会编出漏洞来,程序员很利害的)。接下我就想讨论一下,ASP程序员会编出些什么漏洞出来。
      首选,当然提SQL注入攻击。主要是对客户端传来的参数太过信任,没做丝毫检查就生成SQL语句,结果,这些参数就成了SQL程序。有了这个漏洞,爱搞搞的朋友就凭这点做了许多文章。其实都是很简单的,两三年前做这种攻击的叫高手攻击,而现在玩注入攻击的,叫常规测试。
      其次,上传文件。上传文件是网站的常规操作之一。但这里隐藏着很大的漏洞。因为好果上传来的是可在服务器上执行的程序,那这个网站,基本被攻下了。注意,我说的是“可在服务器上执行的程序”,而不是ASP文件。你知道,可在IIS中执行的不只是ASP文件,它可以是DLL,或都其它任何扩展名的程序,只要在IIS中设置过。有的网站还能上传压缩文件,然后会在网站上解压。虽然上传的压缩文件类型检查过了,但是解压出来后的文件却不一定都检查过,如果解压出来的文件中包含“可在服务器上执行的程序”,那是不是跟直接传个“可在服务器上执行的程序”是一样的?当然是。
      还有一个类似SQL注入的攻击,就是脚本代码注入。你知道吗,脚本中有一个即时解释执行的方法Exec(VBScript)和eval(javascript),如果程序员也像前面所说的那不检查参数,就生成脚本进行执行,那完蛋了,这比SQL注入还可怕。幸运的是这种漏洞不多,我个人只发现过10来个。
      另外,就是程序逻辑漏洞。比如一个业务流程序,一但不严密,某些不该被用户看到的数据让用户看到,也是非常糟的。我就遇到一个网站,当用户忘记密码时,用户的提问问题与问题答案同时写在HTML网页中,一个右键查看源代码,啥都知道了。听起来很弱智,但还是有人犯。
      当然,还会有其它安全问题,这里就不一一例举,总之,是ASP写手失误和IIS配置不到位引起。接下来,我想针对提到的问题,讲一点自己在这方面的经验与体会。
      首先,当然要解决原则上的问题。我们时刻都应该牢记网站面对的是整个网民群体,其中不乏喜欢搞怪的朋友(以前我也是,呵呵),而且你永远都不会知道下一个会是谁来搞你的网站,所以:
    1、 对客户端传来的参数,永远都要不想忘了检查,那怕是一个简单的数值(其是数值挺复杂的);
    2、 用户传来的文件,别相信它是真正的GIF或JPG,可能是ASP,要保证它不是“可在服务器上执行的程序”,如果进行解压,那么解出来的文件,也要检查一下;
    3、 要有耐心。实际上,程序员在很多情况下,都是知道隐藏着的可能问题,但多会由于不耐烦而抱侥幸心理逃避,因为换思路或多写那么二三行代码实在麻烦。我告诉你,如果有问题,下个要改这程序的还是你,而且是被骂了之后再改;
    4、 建立代码审核机制。写好的代码要经审核,因这审核的人与写的人不现,可以更大范围地发现  问题。很可惜,我曾议多个用ASP写程序的公司建立这种机制,但都没被采纳,理由是这样做投入太多。但事实证明,由于不规范的程序给他们造成更多的损失。
      接下来,我想讲一下我所知道的IIS配置:
    1、 不要让你的IIS目录有执行程序的权限,因为绝大多数的网站不需要这个
    2、 对用户上传的文件,放在一个固定的目录下,并设置这个目录不允许执行任何脚本
    3、 对一个WEB用户程序,配置一个权限很小的用户,别让这个用户访问你的系统中不访被访问的地方
    4、 不要让服务器端的错误信息发到客户端
      当然还有其它很多注意事项,我在这里只讲这些我认为重要的。呵呵 

                          
    作者:TaFanSei | 发表时间:2008-3-29 12:15:46 
     
     
    MY BLOG 
    ICP05001603
    Copyright cwdkg.com 2004-2007 All Rights Reserved