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

Posted

技术标签:

【中文标题】如何使用 HTML5 获得经过验证的位置?【英文标题】:How do i get a verified location using HTML5? 【发布时间】:2010-06-22 20:24:33 【问题描述】:

我最近一直在使用 html5 位置查找,从 iPhone 等设备中提取某人的位置相对简单。

我想编写一个使用位置数据的应用程序,但位置信息的真实性很重要。换句话说,我需要防止人们使用模拟的 GPS 坐标向支持网站/网络服务创作虚假帖子。

是否可以使用 HTML5 地理定位 api 从移动设备收集 GPS 坐标,并以某种方式安全地将其传输回网络服务,以使某人无法使用相同的数据撰写帖子并“玩弄系统”可以这么说?

【问题讨论】:

【参考方案1】:

如果没有对客户端上的有效负载进行严格的加密,则并非如此。如果涉及金钱,有人会进行逆向工程并弄清楚如何自己创建有效的有效载荷。请记住,如果涉及金钱或名誉,那么有人 会认为做这样的事情的努力是“值得的”。如果您的网络服务是公开的并且没有在客户端上使用某种加密nothing 将确保具有网络连接的人无法嗅探您的协议并伪造他们想要的任何数据。 SSL 不会削减它。任何人都可以proxy the SSL connection on their local network 解密有效载荷并对其进行检查。

【讨论】:

是的,这有点像我想的那样。我必须想出一种方法来自动检测潜在的作弊行为,而不是防范它。感谢您的意见。【参考方案2】:

没有。完全同意fuzzy lollipop 的回答。如果您正在与远程机器通信,则数据总是可能被伪造。永远永远。是什么让您确定自己甚至是在与移动设备交谈?用户代理字符串?噗,可以伪造。与 GPS 通话? Pfft,可能来自预定义的路径。与网络浏览器交谈? Pfft,可能是机器人或其他恶意软件。

不要认为加密(即 HTTPS)会对您有所帮助。客户端可以即时编辑您的任何 HTML、CSS 或 javascript — 以 Firebug 或 Greasemonkey 为例。

您无法信任客户端的原因与 SQL 或 HTML 注入等漏洞利用如此普遍的原因相同。听说过“客户永远是对的”这句话吗?好吧,客户可能是对的,但客户总是不值得信任的。

系统是用来玩游戏的。发现缺陷后,您会一一修补。这更像是越级,而不是达到圣杯。 Bruce Schneier 的俏皮话“security is a process, not a product” 浮现在脑海中。要求一个“不能被玩弄”的系统没有抓住重点。您需要做的是创建一个系统,让服务器对数据进行清理和/或拒绝不良数据——模糊测试也不是一个坏主意。

这是您可以做到的最好的事情,而不是向您的客户运送定制的不可篡改的手机,操作系统在 ROM 中,内部用环氧树脂密封。

【讨论】:

用 expoxy 密封某些东西并不能阻止中间人进行软件网络攻击,这正是 1980 年试图物理锁定硬件的心态。现在一切都与软件有关。 并不是说 Josh 给他的手机涂上环氧树脂(注意我说的是“不可篡改的手机”,这显然不存在)。只是想强调我的观点,即任何事情都可以在此过程中进行 MITM。我们达成了一致——相信我! ;-)

以上是关于如何使用 HTML5 获得经过验证的位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在函数外使用 HTML5 访问纬度和经度地理位置

如何在 HTML 5 中播放经过身份验证的音频流?

如何在 Django 中使用 Javascript 和经过身份验证的用户调用 Django API

谷歌地图 - 当前位置 - 没有 HTML5

如何在 Vuejs 中对输入使用 HTML5 验证检查

如何从 Instagram API 检索经过验证的用户? [关闭]