信安之路(第九周作业)-web页面解析的流程学习

1、 理解域名解析的整个过程
① 当在浏览器中输入www.baidu.com时,电脑客户端会发出一个DNS请求,问该域名的IP是啥,并发给本地域名服务器。本地域名服务器(本地DNS)是由你的网络服务商自动分配的,它通常就在你网络服务商的某个机房。
② 本地DNS收到来自客户端的请求,会先查找自己是否有www.baidu.com的IP地址,如果有,就直接返回。如果没有,本地DNS会问它的根域名服务器。根域名服务器是最高层次的,全球共有13套。它不直接用于域名解析,但是能指路。
③ 根DNS收到本地DNS的请求后,发现后缀是.com,就返回给根DNS www.baidu.com的顶级域名服务器的地址。顶级域名服务器就是比如.com、.net、.org这些域名,它负责管理二级域名。
④ 本地DNS转向问顶级域名服务器www.baidu.com 的IP地址,顶级域名服务器发现是baidu.com后,便将负责www.baidu.com区域的权威DNS服务器的地址给了本地DNS。
⑤ 本地DNS又跑去问权威DNS服务器,权威DNS服务器查询后将对应的IP地址x.x.x.x告诉本地DNS。
⑥ 本地DNS再将IP地址返回客户端,客户端和目标建立连接。
信安之路(第九周作业)-web页面解析的流程学习_第1张图片
以上参考自《极客时间》刘超老师的《趣谈网络协议》
安全问题:
参考文章:https://zhuanlan.zhihu.com/p/44352985
① DNS拒绝服务攻击(有可能发生在域名解析过程的②③④⑤步)
利用DNS软件版本漏洞攻击;
利用僵尸网络中大量的被控主机,伪装成被攻击主机,在特定时间点上,连续向多个允许递归查询的DNS服务器发送大量的DNS查询请求,迫使其提供应答服务,经DNS服务器放大后的大量应答数据发送到被攻击主机,形成攻击流量,导致其无法提供正常服务甚至瘫痪。
② DNS欺骗
攻击者冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了。
防范措施:https://blog.csdn.net/JackLiu16/article/details/79426241
进行IP地址和MAC地址的绑定;使用域名系统的安全协议;对DNS数据包进行监测;使用IP进行访问;
③ DNS劫持(有可能发生在域名解析过程的第①步)
域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP地址或者什么也不做使得请求失去响应,其效果就是对特定的网址不能访问或访问的是假网址。
这是DNS服务提供商的责任。
④ 缓存欺骗
参考文章:https://zhuanlan.zhihu.com/p/57309897
从以上的域名解析过程中可知,本地DNS服务器不知道哪个服务器负责哪个域,也不知道权威服务器的完整路由,因此只要回复与查询匹配且格式正确,它就会从任何地方接收对其查询的回复。攻击者可以通过在回复本地DNS服务器时击败实际的权威DNS服务器来利用此设计,使本地DNS服务器使用攻击者的DNS记录而不是实际的权威答案。
本地DNS服务器会在内部缓存查询,因此每次请求时,就不必再去查权威服务器了。
解决方式:
实现加密和身份验证的安全方法,使用安全的DNS协议。
2、 理解 web 页面请求的整个流程,绘制流程图(nginx 处理的 11 个过程)

信安之路(第九周作业)-web页面解析的流程学习_第2张图片
3、 学习 http 协议中的字段及含义
http://host[:post][abs_path]
HTTP表示要通过HTTP协议来定位网络资源;
host表示合法的Internet主机域名或者IP地址;
port指定一个端口号,为空则使用缺省端口80;
abs_path指定请求资源的URI;
如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,这个通常是浏览器自动完成的。
http请求由四部分组成,分别是:请求行、请求头、空行、其他消息体
请求行:请求方法+URI+协议/版本
4、 学习 http 请求方法以及返回状态码的类型和含义
GET–从指定的资源请求数据
POST–向指定资源提交数据,请求服务器进行处理,如表单数据提交、文件上传等,请求数据会被包含在请求体中
HEAD–与GET方法一样,都是向服务器发出指定资源的请求。但只有HTTP报头,没有响应体
PUT–向指定资源位置上传其最新内容
DELETE–请求服务器删除Request-URI所标识的资源
OPTIONS–使服务器传回该资源所支持的所有HTTP请求方法
TRACE—回显服务器收到的请求,主要用于测试或诊断
CONNECT–HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器

状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求
常见状态码:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //当前请求需要用户验证
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在
500 Internal Server Error //服务器发生不可预期的错误
502 Bad Gateway //从上游服务器接收到无效的响应
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
HTTP的不安全性:
Http的通信是明文的,存在被窃听的风险;
无法确认通信双方身份,有可能会被人伪造;
无法验证报文的完整性,无法验证是否被篡改过;
如:HTTP劫持
网址被无辜跳转,多了推广的尾巴;
页面出现额外的广告;

你可能感兴趣的:(web安全,web)