代码之家  ›  专栏  ›  技术社区  ›  JoshReedSchramm

如何使用HTML5获得经过验证的位置?

  •  3
  • JoshReedSchramm  · 技术社区  · 15 年前

    我最近一直在玩HTML5位置查找,从iPhone之类的设备中提取某个位置相对简单。

    我想写一个应用程序,使用位置数据,但重要的是位置是真实的。换句话说,我需要防止人们用模拟的GPS坐标在后台网站/网络服务上伪造帖子。

    不管怎样,有没有使用HTML5地理定位API从移动设备收集GPS坐标,并安全地将其传输回Web服务,这样就不会有人能够用相同的数据撰写文章,也就是说“对系统进行游戏”?

    2 回复  |  直到 15 年前
        1
  •  4
  •   user177800    15 年前

    在客户机的有效负载上不需要一些严格的加密。如果涉及到资金,就会有人进行逆向工程,并找出如何自己创建有效的有效负载。记住,如果涉及到金钱或名誉,那么 某人 会认为这样的努力是“值得的”。如果您的Web服务是公共的,并且不使用某种加密 没有什么 在客户机上,可以确保有网络连接的人无法嗅探您的协议并伪造他们想要的任何数据。而SSL不会切断它。任何人都可以 proxy the SSL connection on their local network 解密有效载荷并检查其心脏内容。

        2
  •  4
  •   Jeremy Visser    15 年前

    不,完全同意模糊棒棒糖的答案。如果您正在与远程计算机通信,数据可以 总是 伪造。总是永远。是什么让你确定你在和移动设备通话?用户代理字符串?PFFT,可以伪造。和GPS通话?pfft,可能来自一个预先定义的路径。与网络浏览器交谈?pfft,可能是一个机器人,或其他一些恶意软件。

    别以为加密(即https)会对你有所帮助。客户机可以实时编辑任何HTML、CSS或javascript,例如Firebug或Greasemonkey。

    您之所以能够信任客户机的原因与使用诸如SQL或HTML注入等漏洞如此常见的原因相同。听过“顾客总是对的”这个词吗?嗯,客户可能是对的,但客户总是不可信的。

    这个系统是可以玩的。当缺陷被发现时,你一个接一个地修补它们。它更像跳蛙,而不是达到圣杯。布鲁斯·施耐尔的妙语 “security is a process, not a product” 浮现在脑海中。要求一个可以被玩的系统丢失了要点。您需要做的是创建一个服务器对数据进行消毒和/或拒绝坏数据模糊测试的系统,这也是一个不错的主意。

    这是您可以做到的最好的一点,而无需使用ROM中的操作系统向您的客户运送定制的不可防护的移动设备,内部用环氧树脂密封。