为什么 Chrome 会悄悄对一些奇怪的地址发起 DNS 请求?
国外有网友注意到,电脑有的时候会做一些奇怪的 DNS 请求,请求的地址像是随机的网址一样,怀疑是有恶意软件。 但后来发现,这些请求是 Chrome 发起的,并且不论 Windows 还是 Mac 上都能发现。
类似上图的地址,注意其中几个报错的地址,pnxcygqqemww, ryzypwbheguutkd, 和 snplueo 这些奇怪的地址。
你也可以自己试一下, 在 Chrome 中打开 chrome://net-internals/#dns 可以看到 DNS 请求历史,我在自己的 Chrome 中也发现了类似的现象。
难道是 Chrome 在悄悄的做什么奇怪的事情么?
原来, Chrome 中可以方便的在地址栏进行搜索,直接输入关键词回车即可。 但这样有一个问题, 加入用户搜索单个英语单词,比如 test, 但用户也可能是希望访问 http://test ,后者是一个合法的 URL。 Chrome 的做法是, 给用户 test 关键词的搜索结果, 但悄悄的在后台发起 DNS 请求,看 http://test 是否能得到有效的地址,如果结果是真,那么在搜索结果上给一个提示: 你是否想浏览 http://test 呢?
到目前为止,所有的事情都很好, 这是个很实用的功能。 但是, 有些 ISP 在提供网络服务的时候, 会进行 DNS 劫持,典型的做法是, 把不存在的地址导到自己提供的一些广告页面。 你是中国用户, 你肯定见过这些流氓行为。
Chrome 的解决办法是, 在启动的时候会发起几个随机的地址的 DNS 请求,如果发现 ISP 把这几个地址解析到同样的 IP 地址,那么就认为有 DNS 劫持,不显示 “你是否想浏览 http://test ” 的提示。
不得不说, 做法相当聪明。FT12短网址曾经也遭受过恶意DNS劫持,有了这个法子,的确极大的提升了短网址的安全性。