ASP开发入门难度不大,初学者很快就能掌握基本操作。短时间内,新手常常就能构建出看似相当不错的动态网页,就实用功能而言,资深开发者能够实现的效果,初学者同样可以达成。那么初学者和资深者之间就毫无差异了吗?实际上两者差别非常显著,只是非专业人士很难立刻察觉罢了。用户在使用软件时,对界面的亲疏程度,系统运作的快慢,以及网站防护的严密性,是新手和老手之间差异的三大体现。特别是在安全防护层面,初学者最常忽视的隐患是数据库注入攻击的风险。借助NBSI 2.0工具对部分ASP站点实施基本检测,可以揭示众多ASP站点存在SQL注入风险,教育系统内高校机构的相关网页此类隐患更为常见,或许由于这些站点多由学生构建所致,尽管他们相当聪慧,但毕竟缺乏实践经验,且仍处于学习阶段,因而难免出现较多问题。本文着重介绍如何预防SQL注入攻击,而要理解这些预防手段的作用,必须先透彻说明利用SQL注入漏洞实施攻击的具体步骤。初学者们请注意。
许多软件开发者在进行编码操作时,往往忽视了验证用户提交信息的合规性,导致软件系统容易遭受安全威胁。例如一个标准的网络地址http://localhost/lawjia/show.asp?ID=444,当这个地址被送往主机时,主机会执行一个类似选取所有表格中字段等于"&ID"(其中ID为用户输入的值,本例就是444)的指令,然后将执行结果发给用户,假如用户恶意发送这样一个地址:
该网址为http://localhost/lawjia/show.asp?ID=444并且用户编号大于零的情况下,服务器会执行一个查询指令,内容是选取所有记录,其条件为编号等于四百四十四并且用户编号大于零,然而,这样的指令无法正常执行,必定会产生错误,错误提示如下:
·错误类型:
微软的OLE DB ODBC驱动程序出错,错误代码为0x80040E07
Microsoft
ODBC SQL服务器,作为Windows系统中的高效数据管理工具,其驱动程序发挥着关键作用
SQL Server是一个功能强大的数据库系统软件,它主要运行在Windows操作系统环境之下。
在把字符型数据 'sonybb' 变成整数类型列的过程中遇到了表达异常。
/lawjia/show.asp, 第 47 行
但是居心不良者通过这个失误提示,能够得知以下内容:该平台部署了MS_SQL数据库系统,采用ODBC接口进行连接,登录账户的名称为:sonybb。SQL注入指的是一种技术手段,它借助开发者在验证用户输入环节存在的疏漏或完全忽视,通过客户端发送特定的指令序列,目的是窃取程序与服务器内部数据,进而达成特定目标。一般而言,恶意行为者的主要意图是窃取网站管理者的账号密码信息。譬如某人若知晓网站管理者账号记录于名为login的表格内,且账号名称为admin,此人欲探明管理者密码,便从客户端发起请求,输入如下网址:

链接地址为http://localhost/lawjia/show.asp?ID=444,并且登录名等于'admin'的用户密码值大于零时,系统给出的错误提示内容是:
·错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
Microsoft
ODBC sql server(WINDOWS平台上强大的数据库平台) Driver
sql server(WINDOWS平台上强大的数据库平台)
转换字符串'!@#*&admin'为整型列时,系统报错。
/lawjia/show.asp, 第 47 行
知道吗,那个被标记出来的部分,就是管理员账号admin的登录凭证!虽然它非常晦涩,普通人看了几眼也难以记住,不过现在它已经公之于众了,您便可以用这个账号和对应的凭证,去操控别人的网络平台了!或许您会质疑,如果对方事先不清楚管理员账号存储在表login之中,也不知晓账号是admin,那他怎么可能得到管理员登录凭证呢!你错了,只要对方愿意投入更多精力去探索,他就能获取数据库连接账号权限所能提供的所有信息,详细步骤请查阅网络上的这篇文章:SQL注入漏洞全接触。
这个过程相当复杂,并且需要投入大量时间,要是只能通过手动方式实施SQL注入攻击,那么众多存在SQL注入问题的ASP网站会安全许多,并非漏洞消失,而是利用这些漏洞进行攻击的难度极大,但如果借助专业的黑客工具进行攻击,情况就完全不一样了。采用人工手段实施SQL注入攻击往往耗时数小时乃至数日,而借助专用软件入侵仅需数分钟即可完成,之后利用获取的管理账户与密码,上传从互联网获取的ASP后门程序,便能轻易掌控整个网站的管理权,乃至整个服务器的控制权。知名度最高的一种SQL注入攻击软件是NBSI 2.0,该产品目前已经更新至2.0版本,然而,其官方给出的正式名称并非SQL注入攻击软件,而是称作网站安全缺陷探测程序。借助这种所谓的检测手段,针对存在SQL注入缺陷的ASP站点变得轻而易举,一些既不熟悉ASP也不懂SQL、年纪尚轻的男性年轻人,经常能在一天之内攻破十多个ASP网站,他们从中获得极大的心理满足感。他们好像也很注重职业操守,通常不会破坏网站资料和系统,常见的破坏手法大多只是更换网站首页,留下"善意提醒",例如:你的站点存在SQL注入风险,请管理者加强防范!同时声称"并未破坏资料和系统",还有的趁机宣扬他的主张:"国内站点大家不要攻击,有能力就去攻击小日本的!"",最后,签上他的鼎鼎大名是必不可少的程序。