文章目录
一、Web源码框架
二、目录结构
一个标准的web应用目录结构如下:
1、静态资源
静态web资源和jsp可以放到web应用的根目录下,web应用根目录下的资源,浏览器可以直接访问到。
2、WEB-INF
- 目录受保护,浏览器不能直接访问;
- 如果希望访问WEB-INF下的资源,必须将资源配置到web.xml文件中。
(1)classes
- 存放动态web资源;
- 主要存放源文件编译后的class文件。
(2)lib
存放web应用程序需要用到的jar文件,一般工程所需的其他包都放在lib下。
(3)web.xml
整个web应用的核心配置文件,用来供web容器部署和执行web应用。
😳😳😳web.xml不是必须的,一个web工程可以没有web.xml文件。
二、web脚本语言
1、脚本种类
脚本语言是一种介乎于HTML和JAVA等编程语言只爱你的一种特殊语言。常见的脚本语言可分为静态脚本语言和动态脚本语言:
静态脚本语言:html
动态脚本语言:asp(逐步在淘汰,常见于小站点)、aspx、php(目前比较流行)、jsp
(1)ASP
ASP全名ActiveServerPages,是MicroSoft公司开发的服务器端脚本环境,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。
1)IIS(internet information server)是支持ASP运行的平台。
2)ASP采用脚本语言VBScript(Javascript)作为自己的开发语言。
3)ASP文件与HTML文件类似,包含文本、HTML、脚本。
4)ASP文件中的脚本可在服务器上执行,ASP文件后缀名是 .asp。
ASP与HTML的区别:
- 当浏览器请求某个HTML文件时,服务器就会访问这个文件;
- 当浏览器请求某个ASP文件时,IIS会将这个请求传递给ASP引擎。ASP引擎会逐行读取这个ASP文件,并执行文件中的脚本。最后,ASP文件将以纯HTML的形式返回浏览器。
(2)ASP.NET
- ASP.NET语言的文件后缀名为**.aspx**。通常是用 VB (Visual Basic) 或者 C# (C sharp) 编写。
- ASP.NET 是新一代 ASP 。它与经典 ASP 是不兼容的,但 ASP.NET 可能包括经典 ASP。
- ASP.NET 页面是经过编译的,这使得它们的运行速度比经典 ASP 快。在 ASP.NET 中的控件可以用不同的语言(包括 C++ 和 Java)编写。
😮😮😮当浏览器请求 ASP.NET 文件时,ASP.NET 引擎读取文件,编译和执行脚本文件,并将结果以普通的 HTML 页面返回给浏览器。
(3)php
- PHP是“超文本预处理器”,是在服务端执行的脚本语言。PHP文件可包含文本、HTML、Javascript和php代码。
- PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP代码在服务器上执行,结果以HTML形式返回给浏览器,PHP文件的默认扩展名为”.php”。
- PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等);PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
(4)jsp
- JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
- JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
- JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
- JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。JSP脚本语言的文件后缀名为“.jsp”。
2、判断方法
(1)根据cookie值
根据数据包中传递的cookie值,比如PHP使用的会话ID是PHPSESSID,JSP使用的会话ID是JSESSION。下面网站使用的脚本语言为JSP。
(2)响应包的server值
有时候网站的响应包会携带Server信息,Server表示Web服务器的版本。
另外需要注意以下字段:
- X-Powered-By:Web应用框架信息。
3、网站查询
4、根据服务器类型判断
- IIS6.0,一般是ASP,少部分是ASP.NET,也有少部分是php;
- IIS7.0,一般是ASP.NET,少部分是ASP;
- Nginx,一般为php,也有可能是python;
- Apache,一般都是php;
- Tomat、Resin、JBoss一般是JAVA;
5、使用google hack语法
- inurl:返回url中含有关键词的网页。例如:inurl:xxx 将返回url中含有XXX的网页。
- site:指定访问的站点。例如 site:xxx.com inurl:AAA 将只在xxx.com中查找url中含有AAA的网页。
6、Tips
1)构造畸形请求,让网站报错;
2)通过识别目录、指纹等信息,来识别CMS框架(框架知道了,所用的脚本语言也就知道了);
3)分析某些html中的链接,以及ajax技术中会请求的地址;
4)在网站后面加特殊域名,网站能正常打开,说明网站就是用该语言写的(也有特殊情况)
特殊域名:🐢🐢🐢
index.php、idnex.asp、index.jsp、index.aspx、defualt.php、defualt.asp、default.jsp、default.aspx
4)用正则去匹配HTML代码,找出其中的copyright(版权信息)、powered by(技术支持),进而得知使用的语言。
三、web应用
1、web应用架构
目前流行Web应用程序架构有两种:C/S、B/S.
1)C/S:Client/Server,服务器通常采用高性能的PC、工作站或小型机,客户端需要安装专用的客户端软件。
2)B/S:Brower/Server,客户端只要安装一个浏览器,通过浏览器与Web服务器进行数据交互。
2、web应用开发技术
Web开发技术大体上可以分为客户端技术和服务端技术两大类。
1)客户端技术:Html、JavaScript、JQuery、CSS。
2)服务器端技术:CGI、ASP和ASP.NET、PHD、Servlet、JSP。
3、web应用分类
- 论坛
- 聊天
- 电子邮件
- 搜索引擎
- 电商
- 内容管理系统(CMS)