DNS污染与DNS劫持

2023-11-16

先认识一下什么是DNS

DNS 是域名系统 (Domain Name System) 的缩写。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 当用户在应用程序中输入DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。

因此DNS是网络上非常重要的一个网络服务,如果DNS出现故障往往会造成网络的大面积瘫痪,可以参考[中资源DNS故障,数十万域名无法解析] [上海电信DNS故障] 着两篇文章。曾经轰动一时的“暴风事件”就是因为DNS故障造成了多省的网络瘫痪,不过这不属于DNS污染与DNS劫持范围。

大家都知道,当我们在上网的时候,通常输入的是如网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP地址才能相互识别。例如我们要上醉生梦死的博客,我们可以在IE的地址栏中输入网址“www.liusuping.com”,也可输入IP地址,但是这样子的IP地址我们记不住或说是很难记住,所以有了域名的说法,这样的域名会让我们容易的记住。

DNS服务

通过上面的原理图可以大致了解DNS的工作原理:
1,用户需要访问
www.liusuping.com这个网站,向DNS服务器提出解析请求。
2,DNS服务器通过检查发现
www.liusuping.com域名的IP地址是127.0.0.1,将结果返回给用户。
3,用户知道
www.liusuping.com这个域名的真实地址之后就可以正常访问www.liusuping.com网站了。
什么是DNS劫持
DNS劫持就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。
从上面的原理图上来看,DNS劫持是出现在第2步,通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现DNS劫持的。
DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。
再说简单点,当你输入liusuping.com这个网址的时候,你看到的网站却是百度的首页。
什么是DNS污染
DNS污染是一种让一般用户由于得到虚假目标主机IP而不能与其通信的方法,是一种DNS缓存投毒攻击(DNS cache poisoning)。其工作方式是:由于通常的DNS查询没有任何认证机制,而且DNS查询通常基于的UDP是无连接不可靠的协议,因此DNS的查询非常容易被篡改,通过对UDP端口53上的DNS查询进行入侵检测,一经发现与关键词相匹配的请求则立即伪装成目标域名的解析服务器(NS,Name Server)给查询者返回虚假结果。而DNS污染则是发生在用户请求的第一步上,直接从协议上对用户的DNS请求进行干扰。DNS污染症状:目前一些被禁止访问的网站很多就是通过DNS污染来实现的,例如YouTube。
解决办法:修改Hosts文件,Windows中Hosts文件的优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持,如 “www.liusuping.com 127.0.0.1(正确的域名IP地址)”使用安全的DNS服务器,大多数用户都是使用ISP默认的DNS,如果发现存在DNS劫持现象可以通过更换DNS服务器来实现避免DNS劫持,例如可以更换为第三方的DNS服务Opendns或者得Google的DNS服务器,可以参考:[又多了一个不作恶的DNS选择:google公共DNS] ,不过使用第三方DNS服务器虽然可以解决DNS劫持情况,但是还是不能解决DNS污染问题的。转载请注明:
本文转自:
http://www.liusuping.com/routerswitch/dns-jiechi-wuran.html 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DNS污染与DNS劫持 的相关文章

  • 使用 Java API 下载 YouTube 视频?

    我在 Stack Overflow 中发现了类似的问题 并尝试了一些解决方案 所有这些都已经过时了 所以我提出了一个新问题 我跟随并尝试 如何在java上从youtube下载视频 https stackoverflow com questi
  • GData Youtube:获取缩略图

    我有一堆 youtube VideoID youtube com 网址的参数 watch v 中的字母数字字符串 我必须获取每个视频的缩略图 现在 我为每个 videoid 创建一个 HTTP GET 请求 如下所示 s VIDEOID 实
  • 为什么我只能从 Feed 中获取 25 个 YouTube 视频?

    我在 C NET 上有这段代码 string user Username string feedUrl http gdata youtube com feeds api users user uploads Feed
  • HTTPS 网站上的 Youtube Iframe

    我使用 https 包含了一个指向网站上 YouTube 视频的 iframe 虽然我使用 https 嵌入了 YouTube 视频 但当我单击播放时 视频会加载 http 文件 从而使浏览器安全图标 不安全 如何强制 youtube 仅加
  • PHP:如何检查 URL 是 Youtube 还是 vimeo

    如何编写一个函数来检查提供的 URL 是 youtube 还是 vimeo 例如 我将这两个 URL 作为字符串存储在数据库中 http vimeo com 24456787 http www youtube com watch v rj1
  • 如何在 Pytube 中结合音频和视频?

    我正在尝试编写一段代码 在 Python 3 6 上使用 Pytube 下载 YouTube 视频 但对于大多数视频 渐进式下载 同一文件中的音频和视频 格式最多只能提供 360p 所以我想分别下载音频和视频文件 然后合并起来 我能够下载音
  • YouTube 可以嵌入 Android 应用程序吗? WebOS 或黑莓怎么样?

    是否可以在 Android 操作系统内播放 YouTube 视频而无需启动单独的 YouTube 播放器 WebOS 或黑莓怎么样 在 iPhone 上 我可以使用 WebView 和嵌入的 YouTube 代码来完成此操作 并且我正在权衡
  • WordPress 5.2 YouTube 视频在帖子中自动嵌入功能不起作用

    在我的个人 WordPress 博客 5 2 中 视频自动嵌入功能不起作用 编辑器会显示一个微调框 非常简短 但随后它会在后端显示视频链接 并在前端以纯文本形式显示 URL 我尝试过在不同的浏览器中更改帖子 全部失败 我尝试了不同的视频 有
  • 如何通过 YouTube 直播 API 更改我的活动使用的流?

    所以我一直在寻找一种从 YouTube 获取 16 位流名称的方法 我终于通过这行代码找到了它 gt streamName returnedStream getCdn getIngestionInfo getStreamName 流名称只是
  • Youtube API 和跟踪嵌入视频

    目前的问题是在一个页面上嵌入多个 Youtube 视频 但现在 Youtube 分析无法正常工作 以前我在 Drupal 页面上有很多嵌入视频 但该网站对 SEO 不友好 页面速度很慢 许多嵌入的 Youtube 视频使用 js 和 css
  • 将其他参数添加到来自 youtube 的 yt.player 对象

    我正在使用 yt player 启动 YouTube 视频 如下所示 function onYouTubeIframeAPIReady player new YT Player player height 720 width 1280 ht
  • 使用 YouTube Data API v3 从播放列表中删除视频

    我正在构建一个应用程序 用户可以通过拖放来创建播放列表 我希望他们能够从播放列表中删除视频 但我对文档感到困惑 我正在使用 youtube api php 客户端库 请记住 用户已登录 youtubeService new Google Y
  • YouTube 视频 ID 的最大长度是多少?

    我正在开发一个显示 YouTube 视频的应用程序 我想将视频 id 存储在数据库中 但是因为会有很多视频 我想最小化所需的空间 所以有人知道 youtube 上视频 id 的最大长度吗 几乎可以肯定它会保持在 11 个字符 各个字符来自一
  • YouTube API v3 示例项目引发 GTLJSONRPCErrorDomain -32602 错误请求错误

    我刚刚下载了Google API 目标 C 客户端 https code google com p google api objectivec client source checkout 我在 Mac 上的 Xcode 中打开了 YouT
  • 使用pytube下载youtube视频时如何添加tqdm以显示进度条?

    我在学习pytube下载 Youtube 视频并尝试tqdm在它的顶部显示进度条 但它显示各种错误 而且我无法理解当我下载视频时发生了什么pytube并显示进度条 这就是我无法添加的原因tqdm in it 我写的代码pytube运行良好
  • 用于直播视频的 Youtube iFrame Api?

    我正在尝试使用 youtube iframe api 实现来自 youtube 频道的实时视频 api 中有一个 videoId 属性 它也适用于实时视频 但我们必须在每次流启动时添加视频 id iframe直播视频中有解决方案https
  • Chrome webNavigation.onComplete 不起作用?

    我正在尝试编写一个 chrome 扩展 当用户位于包含视频的 YouTube 页面时执行一些代码 据我所知 我的代码是正确的 但它不起作用 事件页面 js chrome webNavigation onCompleted addListen
  • 尝试更改冻结标题:有 FB 开发人员吗?

    在过去的几年里 这个问题已经被问过几次了 但正如 Facebook 告诉我的那样 Facebook 工程师积极参与 StackOverflow 所以我希望在这里能得到一些快乐 我们已将视频上传到 YouTube 进行了转发并确保我们对此感到
  • 如何使用python将下载的音频文件扩展名重命名为mp3

    目前 我正在尝试根据艺术家姓名和歌曲标题将 YouTube 音乐视频下载为音频文件 下载所有视频后 我尝试将所有音频文件从 webm 或 mp4 扩展名重命名为 mp3 但似乎我在将文件名和扩展名更改为 mp3 时遇到了一些错误 我的代码基
  • 如何使用 Expo 播放 Youtube 视频

    我正在尝试使用反应本机 YouTube 组件 https github com inProgress team react native youtube在我的世博项目中 但是 我无法让它发挥作用 到目前为止 我所拥有的只是带有红色边框的黑屏

随机推荐

  • Des加密原理与简单实现

    源码 https gitee com Cheney822 programmes blob master des py 摘要 实验利用Python语言实现了des加密和解密的功能 并封装成一个类方便后续调用 程序可以读取由数字 符号 字母和中
  • Quartus-建立新工程

    目录 1 安装并破解软件之后 启动Quartus 打开File gt New Project Wizard 进入下一个设置界面 2点击Next跳过介绍页 进入工程设置页 3 配置工程 4建立新的工程文件 5 更改代码编辑器 1 安装并破解软
  • UPF 学习

    常见基本概念及用到的元件 1 电压域 power domain 在逻辑上看 power domain是一组instance 的集合 集合中所有的instance 共用相同的supply set 从物理上看 一个power domain 对应
  • 区块链节点和区块区别_什么是区块链技术?从头开始第4讲_维护区块链的网络和节点...

    维护区块链 网络和节点 区块链由对等网络维护 网络是彼此互连的节点集合 节点是单独的计算机 它们接收输入并对它们执行功能并提供输出 区块链使用一种称为 点对点网络 的特殊网络 该网络在参与者之间划分其整个工作负载 所有参与者都享有同等特权
  • 电池电量与电压的关系

    目前 2012 6 人们主要使用两种监测方法 1 电流积分 current integration 为基础 前者依据一种稳健的思想 即如果对所有电池的充 放电流进行积分 就可以得出剩余电量的大小 当电池刚充好电并且已知是完全充电时 使用电流
  • flutter http成功后回调的写法

    方法如下 获取用户档案解锁状态和个人信息 getUnLockUserInfoStatus int userID Function callBack 回调的方法 表示这个参数可写可不写 if userID 0 return RxHttp
  • 数据库设计与优化

    数据库设计与优化是一个相对复杂的话题 需要涉及到多个方面 包括数据库的基本概念 关系型数据库的设计 数据库优化技巧等 下面将按照逻辑顺序一步一步详细介绍 排版清晰易懂 希望对你有所帮助 数据库基础概念 什么是数据库 数据库是一个有组织 有结
  • 100天精通Python(数据分析篇)——第73天:Pandas文本数据处理方法之查找、替换、拼接、正则、虚拟变量

    文章目录 每篇前言 一 Python字符串内置方法 1 文本查找 2 文本替换 3 文本拼接 4 正则提取 二 Pandas实现文本查找 1 str startswith 字符串 2 str endswith 字符串 3 str index
  • java.lang.IllegalStateException: Failed to load property source

    java lang IllegalStateException Failed to load property source from file H codes20210804 nacos demo provider target clas
  • Mybatis-plus中BaseMapper具体方法说明

    一 BaseMapper方法详解 1 Insert 插入一条记录 int insert T entity 2 Delete 根据 entity 条件 删除记录 int delete Param Constants WRAPPER Wrapp
  • NVIDIA-SMI系列命令总结

    1 NVIDIA SMI介绍 nvidia smi简称NVSMI 提供监控GPU使用情况和更改GPU状态的功能 是一个跨平台工具 它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从WindowsServer 2008 R2开始
  • 2024年java面试--mysql(4)

    系列文章目录 2024年java面试 一 spring篇 2024年java面试 二 spring篇 2024年java面试 三 spring篇 2024年java面试 四 spring篇 2024年java面试 集合篇 2024年java
  • Shopify商品置顶功能

    Shopify商品置顶功能 商品置顶功能描述 通过在商品列表页为链接添加参数的方法实现置顶某个或多个商品的功能 需按以下步骤将目标代码添加到目标位置 目标代码 assign handles assign handleSize 0 if cu
  • RabbitMQ启动没有端口号解决问题

    docker启动容器时报 Failed to create thread Operation not permitted 1 原因 docker内的用户权限受限 解决办法1 启动docker时加上参数 privileged true pri
  • 【空气检测仪专题】10.增加电池显示

    10 增加电池显示 增加了电池电量显示和充电电池动画 增加PM2 5传感器 并显示实时数据 效果如下图
  • Allegro 镜像丝印处理

    本文问题描述 Allegro 设计中丝印镜像了 在器件在正面 丝印也在正面 但是不管怎么 R 都转不过来 发现其实丝印已经被镜像至反面 可能也就需要简单左右镜像下 就可以了 如下图 艹作 在菜单栏点击view 选择Flip Design 点
  • PB(PowerBuilder)如何同消息队列(RabbitMQ)通讯

    参考文档 1 RabbitMQ入门 用途说明和深入理解 RabbitMQ入门 用途说明和深入理解 走错路的程序员的博客 CSDN博客 2 RabbitMQ进阶 管理 配置 RabbitMQ进阶 管理 配置 东孤熊猫的博客 CSDN博客 ap
  • Allegro16.6详细教程(四)

    2 PIN的定義 如果用第一種方式產生Netlist的話 就要對於一些Power pin加以定義 1 滑鼠點選想定義的零件 2 點選選單中Edit gt Part 3 用滑鼠點選想定義的Pin腳 4 點選功能表中Edit gt Proper
  • RCE 远程命令代码执行漏洞

    什么是REC Remote Command Code Execute 远程命令或者代码执行 通过构造特殊的字符串 将数据提交到WEB应用程序 并利用该方式外部程序或命令进行攻击 类似SQL注入 Web应用程序使用了一些可以执行系统命令 或者
  • DNS污染与DNS劫持

    先认识一下什么是DNS DNS 是域名系统 Domain Name System 的缩写 在Internet上域名与IP地址之间是一对一 或者多对一 的 域名虽然便于人们记忆 但机器之间只能互相认识IP地址 它们之间的转换工作称为域名解析