【从入门到放弃系列学习笔记4】web应用安全基础整理-WEB工作机制
一、WEB访问流程

- 网址解析:通过DNS,host等方式进行域名解析
- 发送TCP进行三次握手,建立会话
- HTTP数据包请求
- HTTP数据包响应
-
- html
- php
- mysql
- 。。。
- js
- 动态结果反馈
二、WEB组成
- 网页、网站:代码经过浏览器的渲染呈现的页面
- 静态的网页:纯文本代码文件
- HTML(HyperText Markup Language,超文本标记语言),在浏览器中解释运行
- 静态的网页:纯文本代码文件
- web容器:也叫web服务器,常见的有Apache/IIS/Nginx等
- 中间件服务器:动态脚本的引擎
- Weblogic
- Jboss:java的中间件
- 。。等等
- 数据库
三、HTTP协议概述
HTTP(HyperText Transfer Protocol,超文本传输协议),是浏览器与Web服务器之间的通信协议,是传递消息的规范和要求。
概述:
- 1990年提出,版本演进1.0-》1.1(当前版本)-》2.0
- HTTP是用来将html文档从Web服务器传输到Web浏览器。
- 是一个请求和响应的协议。客户端发出的请求,服务器端对请求给出回应
- HTTP使用的可靠的TCP连接,默认端口80
特点:
- 支持浏览器/服务器模式
- 简单快速:浏览器向服务器提出请求时,只需要传送请求方法和请求路径
- 灵活:HTTP运行传输任意类型的数据对象
- html
- jpg
- mp3
- HTTP协议是无状态的协议
四、URL介绍
URL 统一资源定位符,用来告诉Web容器,浏览器所请求资源文件的路径
fragment 锚点:实现页面内定位
- URL编码
- URL中允许出现的字符是有限制的,除了字母、半角减号、下划线、句点、波浪号,其他字符均会被百分号编码(%+ASCII码16进制)
- 如:# 对应 %23
- [ ] 对应%20
- 即 %+ASCII码16进制
- encode是编码
- decode是解码
五、报文分析工具有哪些?
-
- 浏览器的F12
- Wireshark
- fiddler
- Burp suite
六、HTTP请求报文的组成
HTTP的请求由请求行、请求头、请求正文三个部分组成。
- 请求行:方法,资源路径,协议/版本
- 请求头:从请求报文的第二行开始到第一个空行为止之间的内容
- 请求正文:具体的请求内容,注:GET方法没有请求正文,POST方法有请求正文
七、HTTP请求行 有哪些方法?
- GET方法
- 最常用的方法,通常用于请求服务器发送的某个资源。
- POST方法
- 可以向服务器提交参数以及表单,包括文件流等。
- HEAD方法
- 与GET方法类似,但服务器响应中只返回首部
- *PUT方法
- 与GET从服务器读取文档相反,PUT方法会向服务器写入文档
- *TRACE方法
- 回显浏览器的请求
- OPTIONS方法
- 请求WEB服务器告知其支持的各种功能
- *DELETE方法
- 请求服务器删除请求URL所指定的资源
*标注为风险方法
GET和POST功能相似,那么问题来了:GET方法和POST方法区别在哪?
- GET方法没有请求正文,参数包含在URL中,POST有。
- POST方法可传输表单、文件流
- GET方法最大传输的字节数有限制
还有一个重大区别,简单的说:
- GET产生一个TCP数据包;POST产生两个TCP数据包。
- 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
- 对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
七、HTTP请求头的组成
请求头的组成
- HOST
- 主要用于指定被请求资源的Internet主机和端口号
- User-Agent
- 浏览器的指纹
- Referer
- 包含一个URL,代表当前URL的上一个URL,或者说是从哪个页面跳转过来的,CSRF知识点!!!
- Cookie
- 记录请求这的身份认证信息
- Accept-Chareset
- 用于指定客户端接收的字符集
- Content-Type
- 用于向接收方指示实体的介质类型,就是数据类型
- Content-Length
- 用于指明实体正文(请求正文)的长度,以字节方式存储的十进制数字来表示
- Last-modified
- 最后修改时间
八、HTTP响应报文的组成
响应报文由状态行(响应行)、响应报头、响应正文三部分组成。
- 状态行:协议/版本,状态代码,描述短语
- 状态代码:100-199 信息性状态码
- 200-299 成功状态码
- 300-399 重定向状态码
- 400-499 客户端错误状态码
- 500-599 服务器错误状态码
- 响应报头:从响应报文的第二行开始到第一个空行为止之间的内容
- Server 服务器指纹
- Set-Cookie 向服务器端设置Cookie
- Last-Modified 服务器通过这个头信息高速浏览器,资源的最后修改时间
- Content-Length 请求正文的长度
- Location 重定向目标页面
- Refresh 服务器通过Refresh头告诉
- 响应正文:网页代码
九、同源策略
- URL的主机(FQDN)一致
- Schema 一致
- 端口一致
同源策略的保护对象不仅仅是iframe内的文档,比如实现Ajax时所用到的xmlhttprequest对象能够访问的URL也受到同源策略的限制。
简单的说 JS代码只能读同一个域下的网页

浙公网安备 33010602011771号