知识点
HTTP协议(HyperText Transfer Protocol)
应用最为广泛的网络协议。所有的WWW文件都必须遵守这个标准。
HTTP header
- 响应码(HTTP Status Code):图中结果的第一行里面的200 (详情可参考https://www.jianshu.com/p/65dbf07d3610)
- Date:表示请求的日期时间
- Content-type:表示请求体的多媒体类型 (用于POST和PUT请求中)
- Content-Length:以八位字节数组(8位的字节)表示的请求体的长度
静态网站
全部由HTML代码格式页面组成的网站,所有内容包含在网页文件中。网页上也可以出现各种视觉动态效果,如GIF动画,FLASH动画,滚动字幕等等。一般以htm,html,shtml为后缀。安全性比动态高,没有链接数据库。
动态网站
网站内容可根据不同的情况动态变更的网站。一般情况下动态网站的数据通过数据库进行架构。动态网站除了设计网页外,还要通过数据库和编程序来使网站具有更多的自动的高级的功能。动态网站体现在网页一般是以asp,jsp,php,aspx等为后缀。
动态网站/静态网站 辨别
静态网站用于发布,比如发布一些文章,他不需要用户进行注册;动态则像是论坛,或者淘宝之类,有着大量数据流通的网站,我们判断一个网站属于静态还是动态,就直接在网站后面看他是什么结尾的就好了。
一般的,大型网站的主页都没有显示脚本语言子集。尝试在网站地址后面加index.<type>进行检查。
比如像图片那样,我多加了index.jsp没有报错,说明网站用jsp编写的。如果换成了别的后缀,网站会显示找不到网页。这个方法比较笨,直接检查网页让后去看看他的network里面的请求会更方便。
Linux/Windows网站 辨别
这个小技巧适用于任何网站,应为linux是大小写敏感的(case sensitive),所以比如你对一个html网站跟上index.Html,这个时候如果没报错,就是windows系统,如果报错,就是linux系统,因为Html这个写法linux无法识别。
伪静态网站
对于有些网站,你删除网址最后的html,或者改成php,或者一些其他的“在网址上让其不从属于静态网站”的操作时,他不会报错,依然可以正常显示网页内容,这样的网站就是伪静态网站。
伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用ASP一类的动态脚本来处理的
而以上这些,判断证明网站属于哪种类型,甚至是否存在漏洞,这些检测方法,则都来源于实战的经验,本身并不好再此总结,之后我们会继续讨论。
网站搭建(demo)
首先在这里遍历一下,有很多种结构
- Windows+iis+asp+access
- Windows+apmserv+php+mysql
- Windows+iss+asp+mssql
- Windows+tomcat+jsp+mysql
- Windows+asp小旋风+asp+access
- linux+apche+php+mysql
我们用的是第一个:windows+iis+asp+access,搭建是在windows 2003的那个虚拟机中进行。
第一步,打开管理服务器,添加或删除角色。
点击下一步后稍作等待,选择自定义配置,选择应用程序服务器(IIS, ASP.NET)。
点击下一步后会出现所有能安装的工具,全部勾选。
- FrontPage Server Extension 是一组web服务器扩展,我们可以用来发布FrontPage,Visual studio以及web文件夹的内容,此选项同时启动“索引服务”。
-
在建立可以针对任何浏览器或设备的局域web的应用程序和服务时,ASP.NET是一个功能关键的架构。
随后电脑会自动配置您的服务器向导,并且同时会开始配置电脑的组件,这个组件就来源于当初在创建虚拟机时我们使用的镜像光盘。
安装完成后会有显示。
然后关于网站的具体内容,其实很多网站的源代码都是在网上可以下载的,所以说比如我们需要搭建一个asp源码的网站,我们直接在网上找asp的源码就好。现在,我们打开“开始”菜单 - “管理工具” - “Internet信息服务(IIS)管理器” - “本地计算机” - “网站”,我们可以看见一个默认网站,再点开这个默认网站,我们就可以看到它的储存内容。我们在现阶段对这个网站进行浏览,网站界面则会显示“建设中”。
我们现在先尝试对网页进行最基本的编辑,体会一下编辑网站的过程。首先清空现在的默认网站中所有的内容,然后新建一个文本文档index.html。
然后尝试着访问一下我们的网站。我们的电脑本身就是一台被建立好的服务器,以此为前提,我们如果要访问服务器,只需要输入这个服务器的IP Address。使用WIN+R,cmd,打开命令行,输入指令ipconfig以查找本机的IP地址。然后,我们会发现浏览器显示我们无权访问这个网站。
因为我们在建设网站时,我们本身并没有调整过这个网站的访问权限,如果我们希望能够成功访问,应该先把齐权限调整为所有人可访问的状态。
右键默认网站,进入“权限”,“添加”,在“选择用户或组”这一对话框下“输入对象名称来选择”的空白处输入“Everyone”,这样这个网站的访问权限就被设置为所有人均可访问了。
我们甚至可以给大一点权限,直接在上一级的窗口中,“Administrators的权限“中勾选“完全控制”的“允许”,然后确定就好。
随后,还是右键默认网站,在其属性中设置默认文档,默认文档仅留下我们之前创建的index.html就可以了。
再次刷新,停止并重新启动。
网站搭建(外源代码)
首先我们进入网站的这个选项,我们要知道一个服务器是可以搭建多个网站的。右键选择新建网站。这个时候我们就进入了网站创建向导,点击选择下一步。
接下来会让你输入描述,在这里描述是必须添加的,但是随便怎么写都可以。点击下一步。在接下来的界面中,他让你选择网站IP地址,网站TCP端口和此网站的主机头。
- 80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于WWW(World Wide Web)即万维网传输信息的协议。可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站,因为浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80”了。
- 一般的web服务器一个IP地址的80端口只能正确对应一个网站,处理一个域名的访问请求。而web服务器在不使用多个IP地址和端口的情况下,如果需要支持多个相对独立的网站就需要一种机制来分辨同一个IP地址上的不同网站的请求,这就出现了主机头绑定的方法。举个例子来说,一台服务器IP地址为192.168.1.10,有两个域名和对应的空间在这台服务器上,使用的都是192.168.1.10的80端口来提供服务。
- 网站IP地址是最好理解的,就是外来用户要访问这个网站时通过那个IP地址访问,如果有多个IP地址的话你需要指定一个,如果选择的是“(全部未分配)”,那就是随便一个IP地址都能访问。
-
现在这个时候我们先不设置域名,我们从IP地址开始搭建我们的网站,现在不用分配。
所以也就是保持这个现状直接下一步就好了。
然后要设置这个网站的路径,这个路径在正常情况下是默认的。即C:\Inetpub\wwwroot然后选择下一步。
在接下来,我们为我们的用户分配权限,这里权限就是指在我们的计划中用户可以通过我们的网站做哪些事情,是否允许写入,是否允许执行等等。
正常来说一个用户可以读取就好了,不要给他太大权限,然后这所有的步骤就完成了。给权限太多的问题在于,比如用户拥有写入权限,他就可以通过一些漏洞上传一些自己的代码。
在完成这一系列创建之后,我们可以看见,信息服务管理器下的网站这个文件夹中,test这部分显示停止,这是因为目前他和默认网站都在争取80端口,而现在那个端口已经被“默认网站”所使用了。
- 如果我们真的想在一个服务器上运行多个网站的话,必须做出一些改变,要么不走同一个端口要么不用同一个IP。
- 还有最常见的一种方法,就是让各个网站的域名不一样,比如大家访问这个服务器,都走192.168.1.1的IP,都用的是80的端口,但是网站的域名不一样,所以我们可以区分出具体用户要访问哪个网站。
我们现在稍稍改一下这个网站的配置。先把默认网站给停止,然后在把新建的“test“打开,右键点开属性。
我们现在重点关注这个属性界面的文档,这个文档中的各个选项,其实就是指当你打开了网站后,他默认的将哪一个页面显示出来,也就是你的首页。现在我们先把里面原有的文档全部删除干净,然后重新添加。
我们可以在这里新添加一个index.asp(使用这个名字是因为一般来说没什么特别情况的话,asp网页文档我们就直接叫index.asp)
然后再给这个网站也分配一个权限,一开始直接分配everyone权限就好。
我们把之前那个index.html的文件先给删掉。我们将这个文件复制到之前的根目录当中,就是之前说的
C:\inetpub\wwwroot,这个地方长个心眼不要直接把压缩文件放进去了。
重新启动浏览后发现报错了。
我们需要安装一个asp的程序,首先需要在信息服务管理器中,web服务扩展这个页面打开Active Server Pages。
然后在属性中,将主目录界面的执行权限改成纯脚本。
同时我们可以看见,在这一项边上有一个“配置按钮“,点击可进入应用程序配置。
在选项中启动父路径(上一层文件夹路径),并在调试中将“启用ASP服务器端脚本调试“与”启用ASP客户端脚本调试“给勾选上。
关于启动父路径的意义我们可以联想一下电脑的C盘为什么没有AB盘,就像OS需要bios来调取一样,打开父路径才能让这个网站可以被访问。关于启动父路径,可以参照下面的网站:https://blog.51cto.com/haoaini/1079640
再次刷新重启,可以看到结果。