V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Lilacs
V2EX  ›  微信

手机端页面如何检测 HTML5 的定位数据已经被程序修改过

  •  
  •   Lilacs · 2015-07-16 22:45:07 +08:00 · 2606 次点击
    这是一个创建于 3419 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近做了一个手机考勤的功能,但是有软件可以修改手机的gps位置,只通过浏览器能检测出来数据是被修改过的吗? 页面是需要用微信里头的浏览器打开的。

    17 条回复    2015-07-18 20:18:02 +08:00
    PINK0FLOYD
        1
    PINK0FLOYD  
       2015-07-17 00:44:07 +08:00 via Android
    不可以。没必要检测,因为这玩意没什么卵用
    em70
        2
    em70  
       2015-07-17 00:50:13 +08:00
    可以配合wifi来检测,要是GPS信息OK,但设备该时间段并未连接公司的wifi,就判断为作弊
    pimin
        3
    pimin  
       2015-07-17 00:55:20 +08:00 via iPhone
    @em70
    如果是签到类还不如直接Wi-Fi验证,还定位干嘛
    em70
        4
    em70  
       2015-07-17 00:57:54 +08:00
    @pimin 只认设备不认人的话,代签就太容易了
    hanxi
        5
    hanxi  
       2015-07-17 01:19:29 +08:00 via Android
    @em70 代签这个问题在技术上是不能杜绝的,道高一尺魔高一丈。只能使用监控加人工抽查在政策上规避。
    pagecho
        6
    pagecho  
       2015-07-17 08:20:37 +08:00 via iPhone
    拿一个备用的便宜手机,每天放在公司,如果懒得去了就让同事帮忙签到不就破了么
    Lilacs
        7
    Lilacs  
    OP
       2015-07-17 09:21:42 +08:00 via iPhone
    @pagecho 代签这个情况不会太多,可以不考虑,做了一定处理,基本可以防止这个事。 就是自己修改虚拟位置,我想知道这个数据是不是被修改的。
    omi4399
        8
    omi4399  
       2015-07-17 09:37:54 +08:00
    可以参考 Ingress 的反作弊机制
    typcn
        9
    typcn  
       2015-07-17 09:54:54 +08:00
    @omi4399 Ingress 的跟没有一样 5 分钟破解了。。写个钩子 UIApplicationMain+45 ,不多说了
    omi4399
        10
    omi4399  
       2015-07-17 10:01:02 +08:00
    @typcn 非要这么无情么╮(╯﹏╰)╭
    Lilacs
        11
    Lilacs  
    OP
       2015-07-17 10:09:56 +08:00 via iPhone
    @typcn 我现在想到一个方案,据我观察被修改的坐标只要不更改怎么拿都是一样的。我想在页面中设置一个定时器不断去获取,一段时间内如果坐标都相同,那就认为有问题!
    这种方式还没试验过,担心如果拿着手机不动去获取是否也是相同的。 可以加上摇一摇进行检测,晃动会产生一定偏移。
    不过还没试验,一会去试试。
    typcn
        12
    typcn  
       2015-07-17 10:12:20 +08:00
    @Lilacs 晃手机并不会产生偏移。。。。。。。。
    检测位置修改,自己写 app 还差不多,网页就算了
    Lilacs
        13
    Lilacs  
    OP
       2015-07-18 19:14:12 +08:00
    @typcn 昨天晚上写了个测试,手机页面每隔1秒获取一次高精度的坐标,手机放着不动,依然可以获得一个变换的坐标,平均大概4秒左右会变化一次。而被修改的坐标就是一直显示一个位置。
    typcn
        14
    typcn  
       2015-07-18 19:26:06 +08:00
    @Lilacs 要在模拟GPS的函数中加个随机数不就完了。。。。一分钟都用不了。。。
    typcn
        15
    typcn  
       2015-07-18 19:26:54 +08:00
    @Lilacs 写软件还有一些奇淫技巧,网页没什么用的。。
    Lilacs
        16
    Lilacs  
    OP
       2015-07-18 20:05:06 +08:00
    @typcn 那你知道android 和ios 上的那些修改定位的是通过修改什么达到的吗?
    typcn
        17
    typcn  
       2015-07-18 20:18:02 +08:00   ❤️ 1
    @Lilacs 安卓机我没有,没研究,貌似大部分都是通过调试修改 gps 的,系统自带了一个模拟 gps 的 api,如果使用数据连接定位,还是可以获得真实位置,当然比较厉害的,修改系统核心之类的肯定没问题,不过目前没有见过一个。
    iOS 的话,覆盖 CLLocationManager
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3124 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:49 · PVG 21:49 · LAX 05:49 · JFK 08:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.