兰色精灵 发表于 2015-1-16 22:27:03

ASP网页编程之第十九课:最新的ASP、IIS平安毛病

问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.当ASP以其天真、复杂、有用、壮大的特征敏捷风行环球网站的时分,其自己的一些缺点、毛病也正威逼着一切的网站开辟者,继上一篇中先容了一些IIS的体系毛病及ASP的平安成绩后,本期中将针对最新的ASP、IIS平安毛病举行具体的切磋,请一切的ASP网站开辟者亲切存眷,进步小心。

  本月初微软再次被求全谴责对其出品的WEB服务器软件的平安成绩不减轻视。在微软的盛行产物IISSEVER4.0中被发明存在一种被称为“不法HTR哀求”的缺点。据微软称,此缺点在特定情形下会招致恣意代码都能够在服务器端运转。但用发明这一毛病的Internet平安公司eEye的CEOFirasBushnaq的话说:这只是冰山一角罢了。Bushnaq说,微软坦白了些情形,好比黑客能够使用这一毛病对IIS服务器举行完整的把持,而恰好很多电子商务站点是基于这套体系的。  上面排列出了该IIS体系毛病的具体情形:
  IIS的最新平安毛病
  受影响的体系:
  InternetInformationServer4.0(IIS4)
  MicrosoftWindowsNT4.0SP3OptionPack4
  MicrosoftWindowsNT4.0SP4OptionPack4
  MicrosoftWindowsNT4.0SP5OptionPack4
  发布日期:6.8.1999
  microsoft已证明了这个毛病,但今朝还没有供应可用的补钉程序。
  微软平安通告(MS99-019):
  主题:"非一般的HTR哀求"毛病
  公布工夫:6.15.1999
  择要:
  微软已证明在其公布的WEB服务器产物InternetInformationServer4.0中存在一个严峻的体系毛病,该毛病招致关于IIS服务器的“服务回绝打击”,在这类情形下,大概招致任何2进制代码在服务器上运转。有关该毛病的补钉将在近期公布,请一切IIS用户亲切存眷。
  毛病先容:
  IIS撑持多种必要服务器端处置的文件范例,比如:ASP、ASA、IDC、HTR,当一个WEB用户从客户端哀求此类文件时,响应的DLL文件将主动对其举行处置。但是在ISM.DLL这个卖力处置HTR文件的文件中被发明存在严峻的平安毛病。(注:HTR文件自己是用来远程办理用户暗码的)

  该毛病包括了一个在ISM.DLL中未履历证的缓冲,它大概对WEB服务器的平安运作形成两方面的威逼。起首,是来自服务回绝打击的威逼,一个来自非一般的对.HTR文件哀求将招致缓存溢出,从而间接招致IIS溃散,当这类情形产生时,不必重启服务器,可是IISWEB服务器必需从头启动。另外一个威逼更使人头痛,经由过程利用一个经心构建过的文件哀求将能够使用尺度的缓存溢脱手段招致2进制代码在服务器端运转,在这类情形下,甚么都大概产生!该毛病不包含供应用来办理用户暗码的功效的.HTR文件。
  道理剖析:
  最少在一个IIS的扩大名中(比方:ASP,IDC,HTR)存在溢出。我们推想溢出将在IIS把完全的URL传送给DLL去向理扩大名时产生。假如ISAPIDLL没有准确的反省限定局限从而招致INETINFO.EXE发生一个溢出,用户就从能够远端实行2进制代码。打击办法:向IIS发一个以下的HTTP哀求:"GET/.htrHTTP/1.0",IIS将溃散。这里的能够是3K长的代码。

  人人大概对.HTR文件不是很熟习,实在IIS具有让NT用户经由过程WEB目次/iisadmpwd/变动本人的口令的才能。而这个功效恰是由一组.HTR文件和ISAPI的一个扩大DLL:ISM.DLL完成的。当一个完全的URL传送到ISM.DLL时,因为没有得当的巨细限定的反省,就会招致溢生产生,从而使得服务器溃散。HTR/ISM.DLLISAPI是IIS4缺省安装。
  办理路子:
  因为今朝微软还没有公布可供利用的补钉程序,因而我们只能做一些应急的提防。
  1、将.HTR扩大名从ISAPIDLL的列表中删除
  在你的NT桌面上,点击“入手下手”―>“程序”―>“WindowsNT4.0OptionPack”―>“MicrosoftInternetInformationServer”―>“Internet服务办理器”;双击“InternetInformationServer”;鼠标右键单击盘算机称号并选择“属性”;在“主属性”下拉式菜单当选择“WWW服务”并点击“编纂”按钮;选择“主目次”文件夹,并点击“设置”按钮,在“使用程序映照”列表框当选中.HTR的相干映照,选择“删除”,并断定。
  2、安装微软供应的补钉程序,请亲切存眷以下网址
  http://www.microsoft.com/security
  http://www.microsoft.com/security/products/iis/CheckList.asp
 大概一些伴侣会感应不解,为何我在ASP篇17、18期一连使用两年夜篇幅侧重会商IIS、ASP的平安性成绩,假如你是一个WEB开辟者、ASP程序员,我想你就应当可以体味我的意图。我们举行收集编程、开辟交互性的网站,固然起首是为了开展、建立本身网站,可是这一些都是创建在平安的基本上,这里的平安包含对本人辛辛劳苦开辟的ASP或其他收集使用程序代码的回护、确保网站服务器平安一般的运转、确保用户信息的平安及认证等等,现今后电子商务成为真正普遍运作的一种商务运转手腕后,平安性更是关头之关头。我们中的良多伴侣在作为ASP程序员的同时又身兼收集办理员的职责,因而熟习体系的运作、实时懂得体系毛病、第一工夫办理平安性成绩就显得非常主要和需要,因而在本文的开头,作者将收拾的一些关于NT、IIS体系设置的平安性倡议排列出来,但愿能给人人一些匡助。
  1、利用最新版本的MicrosoftInternetInformationServer4.0,并安装NT最新版本的ServicePack5,服务器的文件体系不要利用FAT,应当利用NTFS。
  2、把IIS中的sample、scripts、iisadmin和msadc等web目次设置为克制匿名会见并限定IP地点。在微软还没有供应补钉之前,把ism.dll有关的使用程序映照删除。
  3、有前提的话就接纳防火墙机制,最复杂的如web服务开在前台,目次放在背景,假如能一个服务一台机固然最好。
  4、Web目次,CGI目次,scripts目次和winnt目次等主要目次要用NTFS的特征设置具体的平安权限,包括注册表信息的Winnt目次只同意办理员完整把持,一样平常的用户只读的权限也不要给。但凡与体系有关的主要文件,除Administrator,别的帐号都应当设置为只读权限,而不是everyone/完整把持。
  5、只开你必要的服务,block失落一切不该该翻开的端口,如NetBios端口139,这是一个典范的伤害端口;如何克制这些端口?除利用防火墙外,NT的Tcp/IP设置内里也供应了这类功效:翻开把持面板-收集-协定-TCP/IP-属性-初级-启用平安机制-设置,这内里供应了TCP和UDP端口的限定和IP协定的限定功效。
  6、办理员的帐号要设置得庞大一些,倡议到场特别字符。
  7、把FTP,Telnet的TCP端口改成非尺度端口,一般我都是设置到10000~65000的局限
  8、删除能够删除的一切共享,包含打印机共享和埋没的共享如ICP$,Admin$等,微软说这些特别共享资本很主要,年夜多半情形下不克不及删除,而实践上放在Internet上的呆板年夜多半不必要共享。
  IPC$:合用于远程办理盘算机和检察共享资本,在网上最好不要用
  Admin$:实践上就是c:winnt,也没有需要共享
  C$:登录为Admin和Backup-operator的用户能够用盘算机名C$的体例会见C盘,固然仅限于局域网,可是远程黑客也有举措假装成局域网的登任命户,以是都应当关失落。
  Print$:这是放打印机驱动程序的目次,与下面的一样也是个很伤害的出口。
  Netlogon:这是处置域登录哀求的共享。假如你的呆板为主域把持器,域内有别的呆板要登录出去,就不要删除它,不然还是能够删除。
  怎样封闭这些共享?用“服务器办理器”―>“共享目次”―>“中断共享”
  9、将ASP的目次会合办理,ASP的程序目次设置细致的会见权限,一样平常倡议不要利用“读”权限。
  10、把winnt下的sam._文件更名,理论证实这个大概保守暗码的文件能够删除不要。
  11、关于已知的NT平安毛病,都应当在本人的呆板上做测试反省。并实时安装补钉程序。
  12、有需要的情形下接纳IIS4.0供应的SSL平安通讯机制来避免数据在网上被截获。
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

乐观 发表于 2015-1-19 12:51:30

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

再见西城 发表于 2015-1-24 15:18:39

如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:

透明 发表于 2015-2-1 18:57:15

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

仓酷云 发表于 2015-2-7 14:37:53

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

不帅 发表于 2015-3-7 00:05:39

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

老尸 发表于 2015-3-13 23:10:34

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

小魔女 发表于 2015-3-20 22:46:16

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
页: [1]
查看完整版本: ASP网页编程之第十九课:最新的ASP、IIS平安毛病