• 欢迎访问夏天爸爸记录站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入SUmmerdad BLOG

如何防范被高精度IP定位采集数据

技术知识 summerdad 2年前 (2017-07-11) 99次浏览 已收录 0个评论 扫描二维码

今天在这里简单的重复解释下高精度 IP 定位原理:运行在手机里的软件,具备了获取 gps 位置的能力,就可以把获取的 gps 坐标通过网络发送给后端服务器。因此在后端服务器,就可以维护一张表格,记录着某个 IP 和某个 gps 坐标的对照关系。

我们仔细看我简述的定位原理,可以观察到:

1,手机里的 app,能获取位置数据

2,手机里的 app,能够通过公网与后台服务器交互。

3,手机有可能是连接了 wifi,此时所使用的是家庭宽带的网络

4,如果使用了家庭宽带网络,那么有可能这个家庭宽带的网络具备公网 IP 到户性质,也就是说家里的路由器获取了公网 ip 地址,这个地址不是 192.168.xx 开头,也不是 10.xxx 开头,还不是 172.xxx 开头。这时候后台所获取的 ip 和 gps 坐标,精度就非常高。最高精度定义为 30m,也就是普通家用 wifi 最大能覆盖的圆形直径。

5,如果使用了家庭宽带网络,可能运营商 IP 资源不足,进行了叫做 NAT 转发的技术。这时候可能得到的就是 10.xxx 开头的一个内网地址,而真正的公网 ip 的位置在这个覆盖区域内的某个地方,这时候,这个手机提交的 ip 和 gps 坐标数据就有误差。而这个误差,是同一个局域网网段下的其他手机所提供,这样以来,就是覆盖一个街道,一个城市,甚至一个省的情况

6,如果手机使用的是手机卡的 GPRS 流量上网,则肯定是经过了 NAT 的网络结构。国内的运营商往往是一个省有一个 IP 池,随机的用来得用户的手机转发上网,这个情况,就出现了一个省单位范围的很多手机上报的 ip 和 gps 坐标的对照,平均一下,范围就非常大。

7,在说说高精度 IP 查不到位置的情况:没有位置服务功能的设备在这个 IP 下使用过。比如,openGPS.cn 站点发布在阿里云的青岛节点的 ECS 上。站长从来没有在这台服务器使用过代理功能,流量始终是这个服务器自己所占用。这时候,因为没有这种具备获取位置功能的手机等设备上报位置,因此就查询不到结果。

==========分割线===========

接下来再说说防御

很多人觉得这个做法有些无耻,未经用户同意。事实上,运行这种服务都是被经过了许可的,只不过往往没有人在使用前仔细去查阅“用户协议”文档。才出现了这个理解误区。

要说防御,其实不用才是最安全的。显然我这么说会被喷,因为现实生活当中,人们对手机的依赖程度已经相当高。那么怎么防御呢?有人针对百度这项服务,为了不被百度采集,直接使用技术手段修改 hosts,让百度的位置服务相关的域名不能正常解析。这样虽然也是个办法,但是不提倡,因为这是有点因噎废食的做法。毕竟家里来个客人,还是很有可能连接你家 wifi 的,还要告诉客人说,我要修改一下你的手机,不让百度位置服务运行。显然这个做法不合实际。有人指出,可以从路由器里改造,实现这个局域网下的接入设备都不能使用百度位置服务。这样其实也不行,毕竟平常用的 uber 啥的,还是要调用百度服务的。百度的这项服务初衷是为了提高位置服务的体验,现在却会因为这个防御手段,连基本的百度地图都不能打开了。显然得不偿失。这里再多延伸一点:就算成功屏蔽了百度的服务,你能确保手机上其他应用没有获取你的位置?比如高德地图,腾讯地图,谷歌地图,QQ,微信等等,是个手机应用就可以实现这个【ip 和 gps 数据】采集动作。因此完全没有必要采取彻底屏蔽百度服务的做法。

小编的观点,防御并非不可能,只是暂时没有多高的必要性,因此如果介意这个采集过程,可以针对精度几十米几百米范围的用户,尝试一下。前面说的干扰百度的域名解析,也是个解决方法,但是带来一堆问题,小编不提倡。

????????小编建议的防御方式:

    • 经常重启路由器;
    • 手机不需要使用位置服务时候,关闭位置功能(不仅仅是关闭 GPS,还要高级选项中的网络定位服务)?
    • 关闭小众软件的定位权限

这个防御方式有一定的针对性,如果用的是固定 ip,显然毫无作用。但是小编之所以把这个办法列在最前面,主要原因在于,目前的网络结构下,联通电信这种运营商才具备足够丰富的 IP 资源可分配。而且 IP 是动态随机分配,通常情况下重启路由器就可以变更自己的 IP,变化之后,手机里的位置类应用就需要依靠重新采集才能准确,而且目前小编观察到,百度的服务虽然是大数据实时建库分析,但仍然存在几个小时几天的更新周期。因此每天重启下路由器变化一下自己的公网 ip,就很大程度下保护自己位置信息。如果用的是小运营航的网络,基本无需考虑这个问题,因为多数小运营商 IP 资源有限,基本不会提供公网 IP 到户的情况。就算有人拿到了你的公网 IP,几千米甚至一个城市的范围也不会构成什么明显影响。

补充说明:

前文提到的,直接使用技术手段修改 hosts,让百度的位置服务相关的域名不能正常解析的方式。屏蔽 hosts 方法有效,但弊端太大,仅能针对已知域名。会导致自己不能正常使用百度位置服务,另外,内嵌百度地图等应用的 APP 也会部分异常,比如我常用的公交查询 app,就内置了百度地图。显然得不偿失。并且只防御了百度,并没有防御其他采集方(任何一款具备网络能力和位置查询能力的 APP)。因为任何一款 APP 都可以采集到这个数据,因此只针对百度屏蔽几个百度的域名并没有多大意义。有人总结了百度位置服务相关的几个 url,如果确实不需要使用百度位置服务类应用,可以从路由器内去屏蔽(或者是局域网下的所有电脑和手机,包括来你家的客人的手机),域名是这些,ip 自己胡乱指向一个即可,比如本机地址 127.0.0.1:

api.map.baidu.com

ps.map.baidu.com

sv.map.baidu.com

offnavi.map.baidu.com

newvector.map.baidu.com

ulog.imap.baidu.com

newloc.map.n.shifen.com


乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何防范被高精度IP定位采集数据
喜欢 (0)
[xiahuanming@gmail.com]
分享 (0)

您必须 登录 才能发表评论!