赞
踩
前言:本人自学时总结的Web安全基础,作为笔记分享给大家,如有错误或有更好的思路和见解,不吝赐教~
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。形象化的理解就是只要和浏览器、网站沾边的都属于Web的范畴。
Web容器是中间件的一种,所以,也可以将他们称之为中间件
数据库 | 默认端口 |
---|---|
Oracle | 1521 |
Mysql | 3306 |
SQL Server | 1433 |
Redis | 6379 |
PostgreSQL | 5432 |
MongoDB | 27017 |
DB2 | 50000 |
站点 | 是否同域 | 原因 |
---|---|---|
https://www.ccit.js.cn | 不同源 | 协议不同,http与https不是同一协议 |
http://test.ccit.js.cn | 不同源 | 域名不同 |
http://www.ccit.js.cn:8888 | 不同源 | 端口不同 |
http://www.ccit.js.cn/info | 同源 | 满足同协议、同域名、同端口 |
这种模式统一了客户端,让核心的业务处理在服务端完成,即浏览器。只需要在电脑或手机上安装一个浏览器,就可以通过Web Server与数据库进行数据交互。
举例:
以访问淘宝为例,当我们访问淘宝时,我们的电脑(浏览器)就是客户机之一,淘宝的代码(首脑)在web服务器中,而淘宝用户的信息存放在数据库服务器中。
站库分离的思想
上图所示就是站库分离,网站和数据库不在同一个服务器上,这种模式更快,更安全。这样黑客攻击拿下了Web服务器并没有获得太多敏感数据,还需要继续拿下数据库才可。
举例:
安装在手机或电脑中的QQ或微信就是客户端软件,储存QQ或微信信息的就是Server服务器
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
9 | PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
举例:http://www.ccit.js.cn/
GET / HTTP/1.1
Host: www.ccit.js.cn
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 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,zh-CN;q=0.9,en;q=0.8
Cookie: _qddaz=QD.xkl6jd.mve7l8.kmlfk7ps; UM_distinctid=1785df94858454-04e1d31a1d8f8e-5771031-1fa400-1785df948594f;
JSESSIONID=A5C940CF300EB093235822565C1A932D
If-None-Match: W/"37140-1616486823000-gzip"
If-Modified-Since: Tue, 23 Mar 2021 08:07:03 GMT
举例:http://www.ccit.js.cn/zjcx/xxjj/xxjs.htm
GET /zjcx/xxjj/xxjs.htm HTTP/1.1
Host: www.ccit.js.cn
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 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://www.ccit.js.cn/
Accept-Encoding: gzip, deflate
Accept-Language: zh,zh-CN;q=0.9,en;q=0.8
Cookie: _qddaz=QD.xkl6jd.mve7l8.kmlfk7ps; UM_distinctid=1785df94858454-04e1d31a1d8f8e-5771031-1fa400-1785df948594f;
JSESSIONID=A5C940CF300EB093235822565C1A932D
用两幅图进行对比
数字 | 类别 | 原因 |
---|---|---|
1XX | informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向状态码) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
2XX 成功 | 原因 |
---|---|
200 OK | 表示从客户端发来的请求在服务器端被正常处理了 |
204 No Content | 表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体部分 |
206 Partial Content | 表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求 |
3XX 重定向 | 原因 |
301 Moved Permanently | 永久性重定向。表示请求的资源被分配了新的URL,以后应使用资源现在所指的URL |
302 Found | 临时重定向。表示请求的资源已被分配了新的URL,希望用户(本次)能使用新的URL访问 |
303 See Other | 表示由于请求对应资源存在着另一个URL,应使用GET的方法定向获取请求的资源 |
304 Not Modified | 表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后,直接返回304 Not Modified |
307 Temporary Redirect | 临时重定向。与302 Found有着相同的含义 |
4XX 客户端错误 | 原因 |
400 Bad Request | 表示请求报文中存在语法错误 |
401 Unauthorized | 表示发送的请求需要有通过HTTP认证的认证信息 |
403 Forbidden | 表示对请求资源的访问被服务器拒绝了 |
404 Not Found | 表示服务器上无法找到请求的资源 |
5XX 服务器错误 | 原因 |
500 Internal Server Error | 表示服务器端在执行请求时发生了错误 |
503 Service Unavailable | 表示服务器暂时处于超负载或正在进行停机维护,现在无法处理请 |
HTTP协议的请求和响应报文中必定包含 HTTP 首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。对于客户端用户来说,这些信息中的大部分内容都无须亲自查看
报文首部由以下几个字段构成:
在请求中,HTTP 报文由方法、URI、HTTP 版本、HTTP首部字段等部分构成。
举例:
在响应报文中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成。
举例:
首部字段名: 字段值
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36
通用首部字段是指请求报文和响应报文双方都会使用的首部。
首部字段名 | 说明 |
---|---|
Cache-Control | 控制缓存的行为 |
Connection | 逐跳首部、连接的管理 |
Date | 创建报文的日期时间 |
Pragma | 报文指令 |
Trailer | 报文末端的首部一览 |
Transfer-Encoding | 指定报文主体的传输编码方式 |
Upgrade | 升级为其他协议 |
Via | 代理服务器的相关信息 |
Warning | 错误通知 |
请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。
首部字段名 | 说明 |
---|---|
Accept | 用户代理可处理的媒体类型 |
Accept-Charset | 优先的字符集 |
Accept-Encoding | 优先的内容编码 |
Accept-Language | 优先的语言(自然语言) |
Authorization | Web认证信息 |
Expect | 期待服务器的特定行为 |
From | 用户的电子邮箱地址 |
Host | 请求资源所在服务器 |
If-Match | 比较实体标记(ETag) |
If-Modified-Since | 比较资源的更新时间 |
If-None-Match | 比较实体标记(与If-Match相反) |
If-Range | 资源未更新时发送实体Byte的范围请求 |
If-Unmodified-Since | 比较资源的更新时间(与If-Modified-Since相反) |
Max-Forwards | 最大传输逐跳数 |
Proxy-Authorization | 代理服务器要求客户端的认证信息 |
Range | 实体的字节范围请求 |
Referer | 对请求中URI的原始获取方 |
TE | 传输编码的优先级 |
User-Agent | HTTP客户端程序的信息 |
响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息。
首部字段名 | 说明 |
---|---|
Accept-Ranges | 是否接受字节范围请求 |
Age | 推算资源创建经过时间 |
ETag | 资源的匹配信息 |
Location | 令客户端重定向至指定URI |
Proxy-Authenticate | 代理服务器对客户端的认证信息 |
Retry-After | 对再次发起请求的时机要求 |
Server | HTTP服务器的安装信息 |
Vary | 代理服务器缓存的管理信息 |
WWW-Authenticate | 服务器对客户端的认证信息 |
实体首部字段是包含在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。
首部字段名 | 说明 |
---|---|
Allow | 资源可支持的HTTP方法 |
Content-Encoding | 实体主体适用的编码方式 |
Content-Language | 实体主体的自然语言 |
Content-Length | 实体主体的大小(单位:字节) |
Content-Location | 替代对应资源的URI |
Content-MD5 | 实体主体的报文摘要 |
Content-Range | 实体主体的位置范围 |
Content-Type | 实体主体的媒体类型 |
Expires | 实体主体过期的日期时间 |
Last-Modified | 资源的最后修改日期时间 |
首部字段名 | 说明 | 首部类型 |
---|---|---|
Cookie | 服务器接收到的Cookie信息 | 请求首部字段 |
X-Forwarded-For | 本地IP或代理IP(格式:X-Forwarded-For: client, proxy1, proxy2) | 请求首部字段 |
client-ip | 客户端IP | 请求首部字段 |
Set-Cookie | 开始状态管理所使用Cookie信息 | 响应首部字段 |
HTTP主要有以下不足
HTTPS= HTTP+SSL(加密+认证+完整性保护)
Session简介
称为会话控制,Session存储特定用户会话所需的属性、配置信息、用户信息等于服务器中
举例
淘宝、京东你专属的购物车,购买记录,保存在服务器
Session生成流程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。