渗透测试 :
是为了证明网络防御按照预期计划正常运行而提供得一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具以确保所有的补丁都已经打上。如果你早已做了这些,为什么还要请外方进行审查或者渗透测试呢?因为,渗透测试能够独立的检查你的网络策略,换句话说,就是给你的系统加上一双眼睛,而且,进行这类测试的,都是虚招网络系统安全漏洞的软也人士。
技术架构-CS(Client/Server):
Client指的是客户端,我们的每一台个人电脑都可以当做客户端,每天访问谷歌搜索东西,访问视频网站看视频,打开音乐播放器下载歌曲等等一系列。这些操作都是要与远方的一台计算机建立通信,远方的这台计算机就叫做服务器Server。
技术架构-B/S(Browser/Server):
凡是我们通过浏览器访问服务器端的,都可以被称之为BS架构。但是某些客户端中采用了Web端的接口,就不分的那么仔细了。(但是总体的来说BS也是CS的一种,现在把BS单独的拿出来做大了)
HTTP协议-交互过程:
什么是HTTP协议?:(要能够简单的看懂旁边的信息)
Host:主机信息。
User-Agent:浏览器类型
Accept:接收的数据类型。
Accept-Encoding:压缩格式。
HTTP常见的请求方法:(GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE)
GET
GET用于信息获取。
POST
POST向服务器提交数据,可以改变服务器上的资源。
HEAD
HEAD与GET本质是一样的,区别在于主要用于获取报文首部,不返回报文主体信息。
PUT
PUT与POST极为相似,都是向服务器发送数据,但PUT通常制定了资源存放的位置,而POST没有。
DELETE
DELETE用于删除某一资源。
OPTIONS
OPTIONS用于获取当前URL所支持的HTTP请求方法
TRACE
TRACE用于追踪路径,远程诊断服务器,它会把服务器之前的请求通信返回给客户端。
GET vs POST
(1)发送机制不同,GET一般用于查询/获取资源信息,而POST一般用于更新资源信息。
(2)GET请求的数据会附在URL之后,POST把提交的数据放置在HTTP请求体中
(3)GET方式提交的数据最多只能是1024字节(取决于操作系统的支持),POST理论上没有数据量的限制(取决于服务器的处理能力)。
(4)POST的安全性比GET的安全性高。通过GET提交数据,用户名和密码会以明文的形式出现在URL中
(5)GET请求会被浏览器自动缓存,而POST不会,除非手动设置。
(6)在浏览器回退时,GET是无害的,POST会再次提交请求。
(7)在发送请求时,GET产生一个TCP数据包,服务器响应200.POST产生两个TCP数据包,浏览器先发送header,响应100,再发送data,响应200.
(8)GET请求只能进行url编码,而POST支持多种编码方式。
(9)GET请求参数会被完整保留在浏览历史记录中,而POST中的参数不会被保留
常见的HTTP状态码:
状态码 释义
100(Continue) 继续,表示目前位置一切正常,客户端应该继续请求
200(OK) 表示请求被服务器正常处理
204(No Content) 表示请求已成功处理,但是没有内容返回
206(Partial Content) 表示服务器已经完成了部分GET请求
301(Moved Permanently) 永久重定向,表示请求的资源已经永久的办到了其他位置
302(Found) 临时重定向,表示请求的资源临时搬到了其他位置
303(See Other) 表示请求资源讯在另一个URI,应使用GET定向获取请求资源
304(Not Modified) 表示所请求的资源未修改,服务器返回此状态码时不会返回任何资源
307(Temporary Redirect) 临时重定向
400(Bad Request) 客户端请求的语法错误,服务器无法理解
401(Unauthorized) 请求要求用户的身份认证
403(Forbidden) 服务器理解客户端的请求,但是拒绝执行此请求
404(Not Found) 服务器无法根据客户端的请求找到资源
500(Internal Server Error) 服务器内部错误,无法完成请求
502(Bad Gateway) 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
504(Gateway Time-out) 充当网关或代理的服务器,未及时从远端服务器获取请求
建立网络思维模型的必要性-宏观意识:
1.我们只有知道了通信原理,才能够清楚的知道数据的交流过程。
2.我们只有知道了网络架构,才能够清楚的、准确的寻找漏洞。培养宏观意识,是我们首先要做的。。。
局域网的简单通信(数据链路层):
OSI七层模型: