仓酷云
标题:
ASP网站制作之第十八篇 堵住ASP毛病
[打印本页]
作者:
灵魂腐蚀
时间:
2015-1-16 22:25
标题:
ASP网站制作之第十八篇 堵住ASP毛病
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。不管你相不信任,经由过程asp,大概能够很便利地进侵webserver、夺取服务器上的文件、捕捉web数据库等体系的用户口令,乃至歹意删除服务器上的的文件,直至形成体系破坏,这些都决非骇人听闻,并且都确的确实产生过,本文将向你逐一展现这些asp存在的毛病,并提出一些提防定见。
上一篇中给人人侧重谈了“ADO存取数据库时怎样分页显现”的成绩,有位伴侣来信给我指出我在盘算页面总数时疏忽了Recordset工具的一个主要参数“PageCount”,它能在给Pagesize赋值后主动得出页面的总数,而不必用“INT(RS.recordcount/PgSz*-1)*-1”如许烦琐的公式。我要感激这位伴侣热情地给我指出程序中的不敷,因为这个程序是我在好久之前写的,由于在分页显现的时分纪录的总数纷歧定能整除页面显现纪录的数量,而事先我又不克不及一定PageCount是不是能准确得出页面的数量,以是偷懒写了这个公式:),说假话我到如今还都没试过用pagecount,有乐趣的伴侣万万要试一下哦,可别学我的怠惰呀。
比来我在chinaasp的bbs上会商成绩时发明良多伴侣关于asp的一些平安性成绩不甚懂得,乃至不晓得怎样办理最多见的asp::$DATA显现源代码的成绩,因而我以为十分有需要在这里给宽大伴侣们重点谈一谈这个成绩,在征得chinaasp飞鸟的批准下,我将他已经写过的一点关于asp毛病的先容加上我本人的一些理论履历拿出来给人人具体剖析一下这个关于webmaster来讲相当主要的asp的平安性成绩。
当客岁::$DATA的毛病被发明并发布的第二天,我已经检测了事先国际年夜部分使用asp的站点,个中百分之九十九都存在以上能够瞥见源代码的成绩,当日我乃至在微软的站点上抓下了search.asp这个文件的源代码。大概你会以为看到源代码并没有甚么年夜碍,假如作为webmaster的你这么想就年夜错特错了。比如,假如asp程序员将站点的上岸暗码间接写在asp里,那末一旦源码被发明,别人就能够很简单的进进本不应被看到的页面,我就已经使用这个办法收费成了一个免费网站的成员(人人可别揭破我哦!),并且良多数据库的毗连用户名和暗码也都是间接写在asp里,一旦被发明,假如你的数据库同意远程会见并且没有设防的话就相称伤害了。在一些用asp开辟的bbs程序中,常常利用的是accessmdb库,假如mdb库寄存的路径被获知,数据库就很有大概被别人下载,加上假如数据库里含有的暗码不加密,那就十分伤害了,猎取暗码的人假如成心举行歹意损坏,他只必要以admin身份上岸删除一切bbs里的帖子,就够你呛的了。上面列出了今朝已发明的一些毛病,但愿人人进步小心1、经由实行我们发明,win95+pws上运转ASP程序,只须复杂地在扫瞄器地点栏的asp文件名后多加一个小数点ASP程序就会被下载上去。IIS3也存在一样的成绩,假如你今朝还在利用IIS3必定要测试一下。
2、iis2、iis3、iis4的一个广为人知的毛病就是::$DATA,经由过程它利用ie的viewsource或netscape间接会见该asp文件就可以十拿九稳地看到asp代码。win98+pws4不存在这个毛病。
事实是甚么缘故原由形成了这类可骇的毛病呢?究其本源实际上是WindowsNT独有的文件体系在做怪。有一点知识的人都晓得在NT供应了一种完整分歧于FAT的文件体系:NTFS,这类被称之为新手艺文件体系的手艺使得NT具有了较高的平安机制,但也恰是由于它而发生了很多使人头痛的隐患。人人大概不晓得,NTFS撑持包括在一个文件中的多半据流,而这个包括了一切内容的主数据流被称之为“DATA”,因而使得在扫瞄器里间接会见NTFS体系的这个特征而容易的捕捉在文件中的剧本程序成了大概。但是间接招致::$DATA的缘故原由是因为IIS在剖析文件名的时分出了成绩,它没有很好地标准文件名。
我们该怎样办理这个成绩呢?举措有几种:
a、是将.asp文件寄存的目次设置为不成读(ASP仍能实行),如许html、css等文件就不克不及放在这个目次下,不然它们将不克不及被扫瞄。
b、是安装微软供应的补钉程序,下载的地点以下(注重针对分歧的体系有分歧的补钉):
该补钉是针对IIS3,Intel平台
ftp.microsoft.com/bussys/iis/iis-public/fixes/cht/security/iis3-datafix/iis3fixi.exe
该补钉是针对IIS3,Intel平台
ftp.microsoft.com/bussys/iis/iis-public/fixes/cht/security/iis3-datafix/iis3fixa.exe
该补钉是针对IIS4,Alpha平台
ftp.microsoft.com/bussys/iis/iis-public/fixes/cht/security/iis4-datafix/iis4fixi.exe
该补钉是针对IIS4,Alpha平台
ftp.microsoft.com/bussys/iis/iis-public/fixes/cht/security/iis4-datafix/iis4fixa.exe
c、是在服务器上安装ie4.01sp1,这个是不是无效,作者自己没详细试过。
d、存粹作者的团体定见,只管安装英文版的NT,而不要利用中文版,究其缘故原由作者也说不清,只是依据理论履历英文版的NT较中文版bug少,假如哪位伴侣晓得缘故原由万万要告知我。
三.撑持ASP的收费主页空间和假造主机服务的服务器面对的成绩
1、服务器上的ASP代码极可能被人其他具有asp权限的人不法猎取。
举个很复杂的例子,在微软供应的ASP1.0的例程里有一个.asp文件专门用来检察别的.asp文件的源代码,该文件为ASPSamp/Samples/code.asp。假如有人把这个程序上传的服务器,而服务器端没有任何提防措施的话,他就能够很简单地检察别人的程序。
比方:
code.asp?source=/directory/file.asp
2、利用的ACCESSmdb数据库大概被人下载一样平常来讲在供应asp权限的收费主页服务器上不成能供应代为设定DSN的服务,因而asp程序利用的数据库一般都范围在利用mdb库,而mdb远端数据库地点的地位是利用我们在第十四期中讲到过的DSN-less办法间接在asp中指定的,办法以下:
<%connstr="DBQ="+server.mappath("database/source.mdb")+";DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};DriverId=25;FIL=MSAccess;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"%>
正如前文所言,在这类情形下mdb库极可能被别人下载,从而形成诸如暗码等的保守。
以是,作为webmaster应当接纳必定的措施,严禁code.asp之类的程序(仿佛很难办到,但能够按期检索特性代码),限定mdb的下载。
3、来自壮大的filesystemobject组件的威逼
IIS3、IIS4的ASP的文件操纵都能够经由过程filesystemobject完成,包含文本文件的读写目次操纵、文件的拷贝更名删除等,可是这个壮大的功效也留下了十分伤害的“后门”。使用filesystemobjet能够改动下载fat分区上的任何文件。即便是ntfs分区,假如权限没有设定好的话,一样也能损坏,一不当心你便可能蒙受“没顶之灾”。遗憾的是良多webmaster只晓得让web服务器运转起来,很少对ntfs举行权限设置,而NT目次权限的默许设置恰恰平安性又低得可骇。因而,假如你是Webmaster,作者激烈倡议你亲切存眷服务器的设置,只管将web目次建在ntfs分区上,目次不要设定everyonefullcontrol,即便是是办理员组的成员一样平常也没甚么需要fullcontrol,只需有读取、变动权限就充足了。
4、ASP使用程序大概面对的打击已往很多Internet上CGI写的留言本或BBS是把客户输出的留言变成一个变量,然后再把这个变量拔出到显现留言的HTML文件里,因而客户输出的文本如要在HTML文件里显现就得切合HTML尺度,而CGI程序里一样平常都到场了特定的HTML言语。当客户输出内容,拔出HTML文件时,即同时拔出到了头尾HTML语句中,如:
<font>客户输出的变量</font>但假如把前后的HTML标志给敝屏了,就能够做良多事变了。
如输出时打上:
</font>切合HTML尺度的语句<font>前后的<font>是用来敝屏CGI中的HTML语句用的。拔出到HTML文件里的就酿成了:
<font></font>切合HTML尺度的语句<font></font>因为如许一个特征,使得写个javascript的逝世轮回变得十分简单,只需在输出框中输出:
<ahref="URL">或<aherf="URL"onMousever="while(ture){window.close(/)}">那末就可以让其他检察该留言的客户的扫瞄器因逝世轮回而逝世失落。ASP开辟的程序一样大概存在这个成绩,因而当你用asp编写相似程序时应当做好对此类操纵的提防,比如能够写一段程序判别客户真个输出,并屏障失落一切的HTML、javascript语句。
看完本期后,假如你十分的震动,那末你必需完全对你现有的网站或asp程序举行一翻检测,看看是不是存在上述毛病。假如你对文中所谈到的毛病都有所懂得并已有充足的对策,那末在祝贺你的同时,仍是要提示你常常检察你的网站和asp程序,假如你无数据库也应当常常检察,以防别人使用一些我们未知的毛病举行打击。最初,假如你对本文所议论的asp平安性成绩有甚么共同的看法,或对毛病有新的发明,但愿能来信同我切磋。[img=1border=0style=,1src=]http://www.ckuyun.com/[/img]
专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。
作者:
愤怒的大鸟
时间:
2015-1-19 11:18
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者:
蒙在股里
时间:
2015-1-26 18:18
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者:
不帅
时间:
2015-2-4 20:32
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者:
飘飘悠悠
时间:
2015-2-10 08:00
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
作者:
因胸联盟
时间:
2015-3-1 04:03
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
作者:
若相依
时间:
2015-3-10 12:46
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者:
金色的骷髅
时间:
2015-3-17 07:12
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者:
飘灵儿
时间:
2015-3-24 02:27
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2