Как получить проверенное местоположение с помощью HTML5? - PullRequest
3 голосов
/ 23 июня 2010

Я недавно играл с поиском местоположения в HTML5, и это относительно просто - извлечь местоположение кого-то из устройства, такого как iPhone.

Я хочу написать приложение, которое использует данные о местоположении, но важно, чтобы местоположение было фактическим.Другими словами, мне нужно запретить людям создавать поддельные посты на веб-сайте / веб-службе поддержки с использованием макетов GPS-координат.

В любом случае можно ли собирать GPS-координаты с мобильного устройства с помощью API геолокации HTML5 и безопасно передавать его обратно в веб-службу таким образом, чтобы кто-то не смог бы создать пост с такими же данными и"игровая система" так сказать?

Ответы [ 2 ]

4 голосов
/ 23 июня 2010

Нет. Полностью согласен с ответом от нечеткого леденца на палочке. Если вы разговариваете с удаленным компьютером, данные могут всегда быть фальшивыми. Всегда всегда. Что делает вас уверенным, что вы вообще общаетесь с мобильным устройством? Строка User-Agent? Пффф, это может быть подделкой. Разговаривать с GPS? Пфф, возможно, он идет по заранее заданному пути. Разговаривая с веб-браузером? Пффф, это может быть бот или другое вредоносное ПО.

И не думайте, что шифрование (т.е. HTTPS) вам поможет. Клиент может на лету редактировать любой ваш HTML, CSS или JavaScript - например, Firebug или Greasemonkey.

Причины, по которым вы не можете доверять клиенту, совпадают с причинами, по которым такие эксплойты, как внедрение SQL или HTML, являются столь распространенными. Когда-нибудь слышали фразу «клиент всегда прав»? Ну, клиент может быть прав, но клиент всегда ненадежен.

Система предназначена для игры. Когда недостатки обнаружены, вы исправляете их один за другим. Это больше похоже на чехарду, а не на достижение Святого Грааля. На ум приходит Брюс Шнайер «Безопасность - это процесс, а не продукт» . Запрашиваемая система, в которую нельзя играть, не имеет смысла. Что вам нужно сделать, так это создать систему, в которой сервер очищает данные и / или отклоняет неверные данные - нечеткая проверка тоже не плохая идея.

Это лучшее из того, что вы можете сделать, не отправляя нестандартные мобильные телефоны своим клиентам с ОС в ПЗУ, а внутренняя часть - с эпоксидной смолой.

4 голосов
/ 23 июня 2010

Не без серьезного шифрования полезной нагрузки на клиенте. Который, если есть вовлеченные деньги, кто-то перепроектирует и выяснит, как создать действительные полезные нагрузки самостоятельно. Помните, что если речь идет о деньгах или славе, тогда кто-то сочтет, что попытка сделать что-то подобное «стоит». Если ваша веб-служба общедоступна и не использует какое-либо шифрование , ничего на клиенте не будет гарантировать, что кто-то с сетевым подключением не сможет прослушать ваш протокол и подделать любые данные, которые он хочет. И SSL не будет сокращать это. Любой может прокси-соединение SSL в своей локальной сети расшифровывать полезную нагрузку и проверять ее содержание.

...