ASP网页编程之ASP毛病剖析息争决办法(1)
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;办理有人说一台反面表面接洽的电脑是最平安的电脑,一个封闭一切端口,不供应任何服务的电脑也是最平安的。黑客常常使用我们所开放的端话柄施打击,这些打击最多见的是DDOS(回绝服务打击).上面我会列出ASP的二十几个毛病,每一个毛病城市有毛病描
述息争决办法。
1在ASP程序后加个特别标记,能看到ASP源程序
受影响的版本:
win95+pws
IIS3.0
98+pws4不存在这个毛病。
IIS4.0以上的版本也不存在这个毛病。
成绩形貌:
这些特别标记包含小数点,%81,::$DATA。好比:
http://someurl/somepage.asp.
http://someurl/somepage.asp%81
http://someurl/somepage.asp::$DATA
http://someurl/somepage.asp%2e
http://someurl/somepage%2e%41sp
http://someurl/somepage%2e%asp
http://someurl/somepage.asp%2e
http://someurl/msadc/samples/selector/showcode.asp?source=/msadc/samples/../../../../../../boot.ini(能够
看到boot.ini的文件内容)
那末在安装有IIS3.0和win95+PWS的扫瞄中就很简单看到somepage.asp的源程序。事实是甚么缘故原由形成了这类可骇的毛病呢?
究其本源实际上是WindowsNT独有的文件体系在做怪。有一点知识的人都晓得在NT供应了一种完整分歧于FAT的文件体系:
NTFS,这类被称之为新手艺文件体系的手艺使得NT具有了较高的平安机制,但也恰是由于它而发生了很多使人头痛的隐患。人人
大概不晓得,NTFS撑持包括在一个文件中的多半据流,而这个包括了一切内容的主数据流被称之为"DATA",因而使得在扫瞄器
里间接会见NTFS体系的这个特征而容易的捕捉在文件中的剧本程序成了大概。但是间接招致::$DATA的缘故原由是因为IIS在
剖析文件名的时分出了成绩,它没有很好地标准文件名。
办理办法和倡议:
假如是WinodwsNT用户,安装IIS4.0大概IIS5.0,Windows2000不存在这个成绩。假如是win95用户,安装WIN98和PWS4.0。
2ACCESSmdb数据库有大概被下载的毛病
成绩形貌:
在用ACCESS做背景数据库时,假如有人经由过程各类办法晓得大概猜到了服务器的ACCESS数据库的路径和数据库称号,那末他可以
下载这个ACCESS数据库文件,这长短常伤害的。好比:假如你的ACCESS数据库book.mdb放在假造目次下的database目次下,那末
有人在扫瞄器中打进:
http://someurl/database/book.mdb
假如你的book.mdb数据库没有事前加密的话,那book.mdb中一切主要的数据都把握在他人的手中。
办理办法:
(1)为你的数据库文件称号起个庞大的十分规的名字,并把他放在几目
录下。所谓"十分规",打个例如:好比有个数据库要保留的是有关书本的信息,可不要把他起个"book.mdb"的名字,起个怪怪的名
称,好比d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/的几层目次下,如许黑客要想经由过程猜的体例失掉你的ACCESS数据库
文件就难上加难了
。
(2)不要把数据库名写在程序中。有些人喜好把DSN写在程序中,好比:
DBPath=Server.MapPath("cmddb.mdb")
conn.Open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&DBPath
假设万一给人拿到了源程序,你的ACCESS数据库的名字就一清二楚。因而倡议你在ODBC里设置数据源,再在程序中如许写:
conn.open"shujiyuan"
(3)利用ACCESS来为数据库文件编码及加密。起首在拔取"工具->安
全->加密/解密数据库,拔取数据库(如:employer.mdb),然后接断定,接着会呈现"数据库加密后另存为"的窗口,存为:
employer1.mdb。接着employer.mdb就会被编码,然后存为employer1.mdb..
要注重的是,以上的举措并非对数据库设置暗码,而只是对数据库文件加以编码,目标是为了避免别人利用其余工具来检察
数据库文件的内容。
接上去我们为数据库加密,起首以翻开经由编码了的employer1.mdb,在翻开时,选择"独有"体例。然后拔取功效表的"工具-
>平安->设置数据库暗码",接着输出暗码便可。
为employer1.mdb设置暗码以后,接上去假如再利用ACCEES数据库文件时,则ACCESS会先请求输出暗码,考证准确后才干够启
动数据库。
不外要在ASP程序中的connection工具的open办法中增添PWD的参数便可,比方:
param="driver={MicrosoftAccessDriver(*.mdb)};Pwd=yfdsfs"
param=param&";dbq="&server.mappath("employer1.mdb")
conn.openparam
如许即便别人失掉了employer1.mdb文件,没有暗码他是没法看到employer1.mdb的。
</p>缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全 兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
页:
[1]