计算机网络(8) ——url-页面过程、DNS寻址、劫持专题


文章目录

  • 计算机网络(8) ——url-页面过程、DNS寻址、劫持专题
    • 1.浏览器输入url后经历的过程
    • 2.DNS寻址/域名解析过程?
      • -DNS查询的四种方式 通俗易懂
      • -DNS用到了负载均衡
    • 3.DNS劫持
      • 3.1什么是DNS劫持
      • 3.2 DNS挟持的方法
    • 4.历史著名DNS劫持案例

计算机网络(8) ——url-页面过程、DNS寻址、劫持专题

1.浏览器输入url后经历的过程

①首先,在浏览器地址栏中输入url
②浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
③在发送http请求前,需要域名解析(DNS寻址),解析获取相应的IP地址。
④浏览器向服务器发起tcp连接,与浏览器建立TCP三次握手。
⑤握手成功后,浏览器向web服务器发送HTTP请求,请求数据包。
⑥服务器处理收到的请求,并返回HTTP响应。
⑦浏览器收到HTTP响应,读取页面内容,浏览器渲染,解析html源码。
⑧生成Dom树、解析css样式、js交互。
⑨客户端和服务器交互
⑩ajax查询。

2.DNS寻址/域名解析过程?

就是通过域名,在DNS服务器中查找到对应ip,最终发送给服务器去请求。
①根据URL域名在浏览器自身缓存中查找对应ip;
②否则,在本地host文件查找;
③否则,在本地DNS解析器缓存中查找;
④否则,在本地DNS服务器查找;
⑤否则,在DNS公网上查询有效ip。

-DNS查询的四种方式 通俗易懂

先借张图,更清晰易懂:

DNS查询过程可以分为本地查询、直接查询、递归查询和迭代查询。
本地查询:
主机保存有近期的DNS查询记录,这里面主要包含两块内容。一是hosts文件,文件保存在客户机系统盘中,文件路径是Windows/system32/drivers/etc/。另外一个是客户机的高速缓存,可以用ipconfig/displaydns查看。
直接查询:
查询本地DNS服务器。如果本地DNS缓存里没有相应的DNS记录,因此,必须将查询请求转发至转发器。这个转发器即家庭路由器WAN口内设置的DNS地址,一般会有主备两个。
迭代查询
转发器按照域名级别高低,先后查询根服务器.com域服务器"http://qq.com(例)"域服务器,最终得到授权应答。这个查询过程即迭代查询
递归查询
转发器将相应的查询结果返回至本地DNS服务器,本地DNS服务器将查询结果返回至主机。这个过程即递归查询

递归的意思是:只需要发出一次请求,就能得到相应的结果。比如主机-本地DNS、本地DNS-转发器,都是递归查询。
迭代的意思是:需要经过多次挨个查询,才能得到相应的结果。比如转发器-根服务器、转发器http://-.com域服务器等,都是迭代查询。

-DNS用到了负载均衡

就是说如果很多客户端同时去访问同一个DNS服务器可能会导致这个DNS服务器过载宕机,DNS服务器会把相同的请求分发到不同的能够解析这个域名的DNS服务器上面进行解析,达到负载均衡的效果。

3.DNS劫持

3.1什么是DNS劫持

DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果ip,导致对该域名的访问由原IP地址转入到修改后的指定IP。
就是篡改了DNS服务器的解析结果,给用户返回一个错误的IP。

DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。

3.2 DNS挟持的方法


(1)DNS信息劫持
TCP/IP体系通过序列号等多种方式避免仿冒数据的插入,但入侵者如果通过监听客户端和DNS服务器的对话,就可以猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。
攻击者在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。
假设当提交给某个域名服务器的域名解析请求的DNS报文包数据被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行访问,这样他就被欺骗到了别处而无法连接想要访问的那个域名。

(2)DNS重定向
攻击者将DNS名称查询重定向到恶意DNS服务器上(钓鱼服务器),被劫持域名的解析结果就完全在攻击者的控制之下。

4.历史著名DNS劫持案例

  • 2009年巴西最大银行遭遇DNS攻击,1%用户被钓鱼。
    2009年巴西一家最大银行Bandesco巴西银行,曾遭受DNS缓存病毒攻击,成为震惊全球的““银行劫持案”。受到影响的用户会被重定向至一个假冒的银行网站,该假冒网站试图窃取用户密码并安装恶意软件。DNS缓存病毒攻击是利用互联网域名系统中的漏洞进行的,没有及时打补丁的ISP很容易受到攻击。合法的IP会被某个网站给取代,即使终端用户输入正确的网址也会被重定向至那些恶意网站。有近1%的银行客户受到了攻击,如果这些客户注意到了银行SSL证书在被重定向时出现的错误提示,就不会上当受骗。
  • 2010年1月12日 上午7时40分 “百度域名被劫持”事件。
    当时有网民发现百度首页登陆发生异常情况。上午8时后,在中国内地大部分地区和美国、欧洲等地都无法以任何方式正常登陆百度网站,而百度域名的WHOIS传输协议被无故更改,网站的域名被更换至雅虎属下的两个域名服务器,部分网民更发现网站页面被篡改成黑色背景以及伊朗国旗,同时显示“This
    site has been hacked by Iranian Cyber
    Army”(该网站已被伊朗网军入侵)字样以及一段阿拉伯文字,然后跳转至英文雅虎主页,这就是“百度域名被劫持”事件。

计算机网络(8) ——url-页面过程、DNS寻址、劫持专题相关推荐

  1. Android中DNS域名劫持问题-解决方案

    前言 在客户端进行业务接口请求时,往往会在线上出现解析JSON响应内容失败而导致的应用崩溃,但是在实际开发测试过程中却没有遇到此问题.解决办法就是对JSON解析进行异常捕获,然后将实际响应内容上报到服 ...

  2. HTTP相关:DNS防止劫持

    一.DNS域名解析过程 当用户在浏览器地址栏输入域名时,DNS解析有大致十个过程: 1.浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束.同时域名被缓存的时间也可通过TT ...

  3. 【转载】全面了解移动端DNS域名劫持等杂症

    原文链接:http://www.52im.net/thread-2121-1-1.html 0 前言 之前在公司的项目中,引入了HttpDNS,但是有很多同事对HttpDNS的原理不是很了解,之前分享 ...

  4. 全面了解移动端DNS域名劫持等杂症:原理、根源、HttpDNS解决方案等

    1.引言 对于互联网,域名是访问的第一跳,而这一跳很多时候会"失足"(尤其是移动端网络),导致访问错误内容.失败连接等,让用户在互联网上畅游的爽快瞬间消失. 而对于这关键的第一跳, ...

  5. ios如何解除dns被劫持_iOS - DNS劫持

    ******科普** 1.DNS劫持的危害 不知道大家有没有发现这样一个现象,在打开一些网页的时候会弹出一些与所浏览网页不相关的内容比如这样奇(se)怪(qing)的东西 图一 或者这样 图二 ,其实 ...

  6. dns遭到劫持什么意思、dns遭到劫持怎么办有什么方法解决

    dns遭到劫持什么意思 DNS劫持是一种恶意攻击,DNS劫持也称为DNS重定向,通过覆盖计算机的TCP / IP设置,将个人查询重定向到域名服务器DNS.这可以通过使用恶意软件或修改服务器的设置来实现 ...

  7. 路由器DNS被劫持 解决办法、网站被劫持怎么办怎么解决

    路由器DNS被劫持,不知道怎么办!因此跟大家说说遇到这种问题的解决办法. DNS劫持是什么? DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行 ...

  8. dns被劫持了怎么办、DNS是什么【详解】

    自从进入网络时代,大家的生活也愈加多姿多彩起来,但也多出了很多烦恼.例如,信息海洋中时不时出现的大群垃圾,以及深渊,就令人防不胜防.这里说的正是上网过程中遇到莫名其妙的网页跳转,好端端的一个网页,忽然 ...

  9. DNS寻址以及IP解析

    域名解析从右向左 DNS寻址: 1 客户端发送查询请求,在本地计算机缓存查询,若没有找到,就会将请求发送给dns服务器 2 先发送给本地的dns服务器,现在自己的区域内查找,若找到,根据此记录进行查询 ...

最新文章

  1. 修改zend studio字符集
  2. linux用8m内存读取1g日志,检查 Linux 中内存使用状况的 8 条命令
  3. java网络编程Socket中SO_LINGER选项的用法解读
  4. leetcode 477. Total Hamming Distance | 477. 汉明距离总和
  5. java 工程新建ivy文件_Hadoop学习之路(八)在eclispe上搭建Hadoop开发环境
  6. 8位二进制补码表示整数的最小值是什么,最大值是什么
  7. python 字符串的(乘法和in)(一分钟读懂)
  8. 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
  9. PopClip for Mac 增强型复制粘贴工具
  10. Android Studio —— java.lang.VerifyError: Verifier rejected class 问题解决
  11. 【C语言入门】%f 和 %lf 的区别
  12. Python全栈学习笔记day 40.5+:线程池和线程池的Python标准模块--concurrent.futures
  13. 80x86 微处理器
  14. 如果你来投票决定百度的生死,你会如何抉择?
  15. 中秋将至,通过代码实现嫦娥奔月庆祝佳节
  16. 华硕m80微型计算机,小就不能满足你了?华硕M80迷你台式机评测
  17. java遍历数组的三种方式
  18. 开关电源学习笔记之MOS管
  19. App Store审核指南(苹果官方)(转)
  20. 塔里木大学CSDN高校俱乐部发展规划

热门文章

  1. 教您怎么给您的移动硬盘加密
  2. PHP茶叶销售购物网店
  3. Arduino舵机库函数的使用
  4. 脑图之困,为什么你的思路打不开?
  5. TransactionScope 与 Async/Await
  6. 页面静态化的概念详解
  7. 版本更新android联想,终于升级到Android10,联想ZUI11.5 内测版上线
  8. BS架构与CS架构剖析
  9. qlist的遍历_QT 容器及遍历
  10. 仅在程序尝试对我的计算机进行更改时通知我 如何允许单个程序不通知,win7如何关闭uac-Win7下怎样对特定程序关闭UAC?只是针对特定程序关闭,不是全 爱问知识人...