Задать вопрос
@mallat
Web & iOS developer

Как безопасно передать timestamp из Cordova-приложения на сервер?

Абстрактный пример. Курьер вышел из точки O в точку A, получил контейнер и доставляет его в точку B. Оплата зависит от времени и расстояния между A и B.
В данный момент приложение шлёт запросы на сервер ("вышел", "получил", "доставил"). Сервер сохраняет timestamp.
Если в точке A нет связи, запрос "получил" своевременно отправить не получится, что влечёт за собой некорректный расчёт стоимости.
Если в запросе передавать timestamp, а сам запрос выполнять по возможности, возникает вероятность передачи заведомо неверных данных, что, опять-таки, может привести к неверному расчёту стоимости.
Нужно застраховаться от передачи ложных данных.
  • Вопрос задан
  • 478 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
kgnk
@kgnk
Разрабатываю сайты, рисую интерфейсы
Смотрите на проблему не с той стороны, видимо, временная метка формируется на основе GPS данных, которые очень просто подделываются и уже становится абсолютно безразлично, когда именно была отправлена метка.

Видимо, в приложении есть, кроме курьеров, еще и поставщики с получателями? Курьеры заинтересованы в обмане системы для получения максимальной прибыли, а поставщики и получатели минимизации затрат.

Модель моего решения выглядит примерно так:

При получении товара, поставщик сканирует QR-код с хешем подтверждающим передачу товара. Фиксируется время с двух сторон. При передачи товара происходит аналогичная операция только уже с хешем получения товара. Все данные отправляются по возможности.

Сервер проверяет дельту времени передачи товара курьеру от поставщика с двух сторон. Аналогично с передачей товара от курьера к получателю. Если расхождение больше нескольких минут, кого-то можно сразу банить. Как итог, никому не будет выгоды от обмана системы, а у вас реальные временные метки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы