Open YIXUNFE opened 8 years ago
这些年随着互联网的兴起,钓鱼网站、恶意站点也是层出不穷。浏览器生产商为解决这些问题费了不少力,想了不少解决办法。比如给 alert 对话框添加了 “阻止此页面创建更多对话框” 选项以避免浏览器被恶意的无限弹框;增加了恶意站点的提示,需要手动加入白名单后才可以访问等。
alert
这些防止用户受到伤害的措施中,有一项是我们今天要讲述的主角 —— Google Safebrowsing。它会对网页请求的静态资源经由浏览器与谷歌通信以识别资源是否安全,这也就改变了我们对前端静态资源加载的一般认知。
Google Safebrowsing 是由谷歌提供的一个服务,它存有一份具有潜在危险的资源 URL 列表,实际用于比对的应该是 URL 字符串的哈希值。当对资源 URL 的哈希进行碰撞检测命中后,会告知用户该资源具有潜在危险。 目前 Firefox、Chrome 和 Safari 都在使用该项服务检查用户浏览的内容是否具有潜在危险。
(表格从上至下表示时间线)
浏览器为了识别响应的资源是否具有安全隐患,在资源响应后先进行了本地的哈希碰撞(浏览器自身应该存有一份实效性不强的恶意资源列表),当检查结果不通过时会联网请求谷歌的服务,然后决定是否将响应的资源交给页面处理。
这种加载资源的过程比我们通常认为的加载过程多出了一个维度,即将客户端分成了 “页面” 和 “浏览器” 两个维度。这样的细分能够使我们更好的认识到浏览器自身的行为,从而更好的排查问题。
众所周知,由于 “局域网” 下无法访问谷歌服务,浏览器在联网请求 Google Safebrowsing 时得不到响应(GFW 针对谷歌的封锁采取 hold 链接,不释放,不重置),就只能等待超时。从 Firefox 的历史版本中可以查看到,火狐设置的超时时间是 5 秒(查看)。
Google Safebrowsing 服务可以从浏览器的设置中关闭。以 Firefox 为例,可以在 “设置 - 安全” 中将 “阻止已报告的攻击站点” 和 “阻止已报告的钓鱼网站” 两项取消选中。
嫌浏览器一个个设置麻烦就干脆把 host 改一改。
127.0.0.1 safebrowsing.clients.google.com 127.0.0.1 safebrowsing-cache.google.com
Google Safebrowsing 与 前端静态资源加载
这些年随着互联网的兴起,钓鱼网站、恶意站点也是层出不穷。浏览器生产商为解决这些问题费了不少力,想了不少解决办法。比如给
alert
对话框添加了 “阻止此页面创建更多对话框” 选项以避免浏览器被恶意的无限弹框;增加了恶意站点的提示,需要手动加入白名单后才可以访问等。这些防止用户受到伤害的措施中,有一项是我们今天要讲述的主角 —— Google Safebrowsing。它会对网页请求的静态资源经由浏览器与谷歌通信以识别资源是否安全,这也就改变了我们对前端静态资源加载的一般认知。
什么是 Google Safebrowsing
Google Safebrowsing 是由谷歌提供的一个服务,它存有一份具有潜在危险的资源 URL 列表,实际用于比对的应该是 URL 字符串的哈希值。当对资源 URL 的哈希进行碰撞检测命中后,会告知用户该资源具有潜在危险。 目前 Firefox、Chrome 和 Safari 都在使用该项服务检查用户浏览的内容是否具有潜在危险。
在 Google Safebrowsing 影响下的加载流程
(表格从上至下表示时间线)
浏览器为了识别响应的资源是否具有安全隐患,在资源响应后先进行了本地的哈希碰撞(浏览器自身应该存有一份实效性不强的恶意资源列表),当检查结果不通过时会联网请求谷歌的服务,然后决定是否将响应的资源交给页面处理。
这种加载资源的过程比我们通常认为的加载过程多出了一个维度,即将客户端分成了 “页面” 和 “浏览器” 两个维度。这样的细分能够使我们更好的认识到浏览器自身的行为,从而更好的排查问题。
请求 Google Safebrowsing 造成的影响
众所周知,由于 “局域网” 下无法访问谷歌服务,浏览器在联网请求 Google Safebrowsing 时得不到响应(GFW 针对谷歌的封锁采取 hold 链接,不释放,不重置),就只能等待超时。从 Firefox 的历史版本中可以查看到,火狐设置的超时时间是 5 秒(查看)。
如何关闭 Google Safebrowsing
Google Safebrowsing 服务可以从浏览器的设置中关闭。以 Firefox 为例,可以在 “设置 - 安全” 中将 “阻止已报告的攻击站点” 和 “阻止已报告的钓鱼网站” 两项取消选中。
嫌浏览器一个个设置麻烦就干脆把 host 改一改。
Thanks