WEB安全渗透测试基础知识(一)

首页    学习小记    WEB安全渗透测试基础知识(一)

1.1. Web技术演化 

1.1.1. 静态页面

在互联网最初开始的时候,Web网站的主要内容是静态的,由文字和图片组成,制作和表现形式也是以表格为主。当时的用户行为也非常简单,仅仅是浏览网页。 

1.1.2. 多媒体阶段

随着技术的不断发展,音频、视频、Flash等多媒体技术诞生了。多媒体的加入使得网页变得更加生动形象,网页上的交互也给用户带来了更好的体验。

1.1.3. CGI阶段

渐渐的,多媒体已经不能满足人们的请求,于是CGI(Common Gateway Interface)应运而生。CGI定义了Web服务器与外部应用程序之间的通信接口标准,因此Web服务器可以通过CGI执行外部程序,让外部程序根据Web请求内容生成动态的内容。 

在这个时候,各种编程语言如PHP/ASP/JSP也逐渐加入市场,基于这些语言可以实现更加模块化的、功能更强大的应用程序。

1.1.4. Ajax 

在开始的时候,用户提交整个表单后才能获取结果,用户体验极差。于是Ajax(Asynchronous Javascript And XML)技术逐渐流行起来,它使得应用在不更新整个页面的前提下也可以获得或更新数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。

1.1.5. MVC 

随着Web应用开发越来越标准化,出现了MVC等思想。MVC是Model/View/Control的缩写,Model用于封装数据和数据处理方法,视图View是数据的HTML展现,控制器Controller负责响应请求,协调Model和View。

Model,View和Controller的分开,是一种典型的关注点分离的思想,使得代码复用性和组织性更好,Web应用的配置性和灵活性也越来越好。而数据访问也逐渐通过面向对象的方式来替代直接的SQL访问,出现了ORM(Object Relation Mapping)的概念。 

除了MVC,类似的设计思想还有MVP,MVVM等。 

1.1.6. RESTful

在CGI时期,前后端通常是没有做严格区分的,随着解耦和的需求不断增加,前后端的概念开始变得清晰。前端主要指网站前台部分,运行在PC端、移动端等浏览器上展现给用户浏览的网页,由HTML5、CSS3、JavaScript组成。后端主要指网站的逻辑部分,涉及数据的增删改查等。

此时,REST(Representation State Transformation)逐渐成为一种流行的Web架构风格。 

REST鼓励基于URL来组织系统功能,充分利用HTTP本身的语义,而不是仅仅将HTTP作为一种远程数据传输协议。一般RESTful有以下的特征: 

  • 域名和主域名分开api.example.comexample.com/api/
  • 带有版本控制api.example.com/v1api.example.com/v2
  • 使用URL定位资源GET /users 获取所有用户GET /team/:team/users获取某团队所有用户POST /users 创建用户PATCH/PUT /users 修改某个用户数据DELETE /users 删除某个用户数据
  • 用 HTTP 动词描述操作GET 获取资源,单个或多个POST 创建资源PUT/PATCH 更新资源,客户端提供完整的资源数据 是 DELETE 删除资源正确使用状态码使用状态码提高返回数据的可读性
  • 默认使用 JSON 作为数据响应格式
  • 有清晰的文档 

1.1.7. 云服务 

随着时间的发展,Web的架构越发复杂,负载均衡、数据库分表、异地容灾、缓存、CDN、消息队列等技术开始应用,增加了Web开发和运维的复杂度。同时云服务开始逐渐发展,部署环境容器化,各个功能拆成微服务或是Serverless的架构。

1.2. 计算机网络 

1.2.1. 计算机通信网的组成

计算机网络由通信子网和资源子网组成。 

其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制、流量控制、路由选择、网络互连等。 

其中资源子网:是计算机通信的本地系统环境,包括主机、终端和应用程序等, 资源子网的主要功能是用户资源配置、数据的处理和管理、软件和硬件共享以及负载 均衡等。

 计算机通信网就是一个由通信子网承载的、传输和共享资源子网的各类信息的系统。

1.2.2. 通信协议 

为了完成计算机之间有序的信息交换,提出了通信协议的概念,其定义是相互通信的双方(或多方)对如何进行信息交换所必须遵守的一整套规则。

 协议涉及到三个要素,分别为: 

  • 语法:语法是用户数据与控制信息的结构与格式,以及数据出现顺序的意义
  • 语义:用于解释比特流的每一部分的意义
  • 时序:事件实现顺序的详细说明 

1.2.3. OSI七层模型 

1.2.3.1. 简介 

OSI(Open System Interconnection)共分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层七层,其具体的功能如下。

1.2.3.2. 物理层 

  • 提供建立、维护和释放物理链路所需的机械、电气功能和规程等特性
  • 通过传输介质进行数据流(比特流)的物理传输、故障监测和物理层管理
  • 从数据链路层接收帧,将比特流转换成底层物理介质上的信号

1.2.3.3. 数据链路层 

  • 在物理链路的两端之间传输数据
  • 在网络层实体间提供数据传输功能和控制
  • 提供数据的流量控制
  • 检测和纠正物理链路产生的差错
  • 格式化的消息称为帧 

1.2.3.4. 网络层

  • 负责端到端的数据的路由或交换,为透明地传输数据建立连接
  • 寻址并解决与数据在异构网络间传输相关的所有问题
  • 使用上面的传输层和下面的数据链路层的功能
  • 格式化的消息称为分组

1.2.3.5. 传输层 

  • 提供无差错的数据传输
  • 接收来自会话层的数据,如果需要,将数据分割成更小的分组,向网络层传送分组并确保分组完整和正确到达它们的目的地
  • 在系统之间提供可靠的透明的数据传输,提供端到端的错误恢复和流量控制

1.2.3.6. 会话层 

  • 提供节点之间通信过程的协调
  • 负责执行会话规则(如:连接是否允许半双工或全双工通信)、同步数据流以及当故障发生时重新建立连接
  • 使用上面的表示层和下面的传输层的功能

1.2.3.7. 表示层 

  • 提供数据格式、变换和编码转换
  • 涉及正在传输数据的语法和语义
  • 将消息以合适电子传输的格式编码
  • 执行该层的数据压缩和加密
  • 从应用层接收消息,转换格式,并传送到会话层,该层常合并在应用层中

1.2.3.8. 应用层

  • 包括各种协议,它们定义了具体的面向拥护的应用:如电子邮件、文件传输等 

1.2.3.9. 总结

低三层模型属于通信子网,涉及为用户间提供透明连接,操作主要以每条链路( hop-by-hop)为基础,在节点间的各条数据链路上进行通信。由网络层来控制各条链路上的通信,但要依赖于其他节点的协调操作。 

高三层属于资源子网,主要涉及保证信息以正确可理解形式传送。

传输层是高三层和低三层之间的接口,它是第一个端到端的层次,保证透明的端到端连接,满足用户的服务质量( QoS)要求,并向高三层提供合适的信息形式。 

本文转载自 安全时代


 

2019年11月20日 21:37
浏览量:0
收藏