Google chrome Google Chrome使用bloom过滤器

Google chrome Google Chrome使用bloom过滤器,google-chrome,data-structures,web,browser,bloom-filter,Google Chrome,Data Structures,Web,Browser,Bloom Filter,我在读一篇维基百科关于Bloom过滤器使用的文章。文章中提到,Google Chrome使用Bloom过滤器来检测输入的URL是否是恶意的。因为假阳性的存在 Google Chrome web浏览器使用Bloom过滤器识别恶意URL。任何URL都首先根据本地Bloom筛选器进行检查,只有在命中时,才会对URL执行完整检查 我猜完全检查意味着谷歌存储了一个包含恶意URL列表的苛刻表格,并且该URL被哈希以检查是否存在于表格中。如果是这种情况,是否最好只使用哈希表而不是哈希表+bloom筛选器 请告

我在读一篇维基百科关于Bloom过滤器使用的文章。文章中提到,Google Chrome使用Bloom过滤器来检测输入的URL是否是恶意的。因为假阳性的存在

Google Chrome web浏览器使用Bloom过滤器识别恶意URL。任何URL都首先根据本地Bloom筛选器进行检查,只有在命中时,才会对URL执行完整检查

我猜完全检查意味着谷歌存储了一个包含恶意URL列表的苛刻表格,并且该URL被哈希以检查是否存在于表格中。如果是这种情况,是否最好只使用哈希表而不是哈希表+bloom筛选器


请告诉我,我的完整检查版本正确吗?

用于所有恶意URL的bloom筛选器足够小,可以保存在您的计算机上,甚至内存中。因为你进入的几乎所有网站都不是恶意的,如果你不为它们做额外的请求就更好了,这就是bloom过滤器的用武之地。
你可能感觉不到这一点,但对于缓慢的互联网连接来说,这是非常有用的。

Bloom筛选器不仅比web查询小得多,速度也快得多,而且还可以保护Google的恶意URL API,使其免受巨大工作量的影响。

据我所知,Bloom筛选器可以在有限的空间内高效地存储数据。bloom filter的契约是它不会返回假阴性,但是根据bloom filter的向量大小,它可能会返回一些假阳性


只是为了确定假阳性,谷歌要么使用哈希法,要么将url发送到他们的服务器,通过消除将所有url发送到服务器的负载来重新检查那里的url。

Bloom筛选器是一种概率数据结构,它告诉我们元素肯定不在集合中,或者可能在集合中。与Hashmap相比,Bloom筛选器占用的空间更少(取决于配置的哈希函数和错误率)。Hashmap可以确定元素是否存在,而bloomfilter只能确定元素是否不存在

让我们看看谷歌浏览器的使用案例。当用户输入URL时,应验证该URL是否安全。为了验证URL,chrome可以调用google服务(google可以在内部维护任何数据结构来发现这一点)。然而,这种方法的挑战是多方面的。对于chrome上提供的每个URL请求,URL验证都是通过Google服务器进行的,这增加了对Google服务器的额外依赖性、网络往返时间、,以及保持高可用性的要求,以验证世界各地chrome浏览器触发的所有URL的URL

由于这些数据不会经常更改(可能在一个小时左右更新),chrome可能会考虑将所有恶意网站数据捆绑为bloom过滤器,google可能会定期与客户端同步这些数据(恶意网站比全面发布的网站要少)。当用户在chrome中打开一个url时,它会检查bloom过滤器,如果该url不存在,那么它是安全的。如果它存在,那么bloom filter不确定它,因此流量将转到google服务器进行验证(与路由所有流量相比,此流量将少得多)