请求头

HOST:用于指定被请求资源的Internet主机和端口号

user-agent:浏览器指纹

referer:当前页面的上一个页面,如果是直接访问,则此项为空


下面是一个get页面


GET /post.html HTTP/1.1
Host: 192.168.1.3
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

下面是一个post页面

POST /welcome.php HTTP/1.1
Host: 192.168.1.3
Content-Length: 16
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.1.3
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.1.3/post.HTML
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

fname=tom&age=12

content-length是数据长度。即“fname=tom&age=12”的长度。

cookies:记录请求者的身份认证信息

accept-charset:用于指定客户端接收的字符集

content-type:用于向接收方指示实体的介质类型,即数据类型

content-length:用于指明实体正文的长度,以字节方式存储的十进制数字来表示

last-modified:用于指示资源的最后修改时间和日期

选中后右键发送到repeater模块,即重放模块,使一个数据包发送多次。

点击send,就会重新发送了。如果我们在这里修改一些内容,就会发送错误的数据了。

 响应报文RESPOSE

HTTP/1.1 200 OK
Date: Sun, 09 Jan 2022 11:56:22 GMT
Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02
Last-Modified: Sun, 09 Jan 2022 11:55:26 GMT
ETag: "10a-5d524e55333ad"
Accept-Ranges: bytes
Content-Length: 266
Connection: close
Content-Type: text/html

<html>
<head>
<meta charset="UTF-8">
<title>POST TEST</title>
</head>
<body>

<form action="index.php" method="post">
NAME:<input type="text" name="fname">
AGE:<input type="text" name="age">
<input type="submit" value="SUBMIT">
</form>

</body>
</html>

响应报文由状态行、响应头和响应报文组成

1、状态行

协议/版本,状态代码,描述短语

如:协议/版本:HTTP/1.1状态代码:200 描述短语:OK

状态代码

100-199:信息性状态码

200-299:成功状态码

300-399:重定向状态码

400-499:客户端错误状态码

500-599:服务器错误状态码

2、响应头

日期时间:Date: Sun, 09 Jan 2022 11:56:22 GMT

服务器指纹:Server: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02

资源的最新修改时间:Last-Modified: Sun, 09 Jan 2022 11:55:26 GMT

ETag: "10a-5d524e55333ad"

Accept-Ranges: bytes

正文的长度:Content-Length: 266

Connection: close

Content-Type: text/html


3、响应报文

服务器返回资源的内容,即浏览器接收到的HTML代码

<html>
<head>
<meta charset="UTF-8">
<title>POST TEST</title>
</head>
<body>
<form action="index.php" method="post">
NAME:<input type="text" name="fname">
AGE:<input type="text" name="age">
<input type="submit" value="SUBMIT">
</form>
</body>
</html>


cookie与session机制

HTTP协议本身是无状态的协议,HTTP不会记录前一次传输的数据信息,而很多情况下,我们和服务器之间的一个会话不是一个动作就完成了,所以我们希望能在客户端和服务器这个交互的会话期间内,服务器能保持对客户端会话的识别,也就是保持http的状态性。

这就是cookie的功能。

我们可以理解为:网站为了辨别用户身份,进行session(会话)跟踪而存储在用户本地终端上的数据(通常经过加密),用户不用再每一个页面都输入用户名和口令。

session机制

session机制需要借助cookie来实现,但是二者有明显区别,cookie机制将用户的身份认证信息存储在浏览器端,session机制是将身份认证信息放在服务器端,session从一定程度上解决了cookie所面临的窃取和欺骗的风险。窃取的是cookie信息,欺骗的是服务器,二者合一称为固定会话攻*击。

同源策略

禁止JavaScript进行跨域访问的安全策略,它也是浏览器沙盒环境提供的一项制约。


同源策略的条件

url的主机一致

schema一致

端口号一致

同源策略的保护对象不仅仅是iframe内的文档,比如实现ajax时所使用的xmlhttprequest对象能够访问的url,也受到了同源策略的限制。


#yyds干货盘点#web安全day48:session和cookie、同源策略的初步理解_服务器