Обеспечение соблюдения сроков на клиенте - PullRequest
0 голосов
/ 20 октября 2011

Предположим, у вас есть веб-приложение и вы хотите, чтобы пользователь выполнил определенное действие (например, отвечая на вопрос викторины) в течение определенного периода времени. Каков наилучший способ обеспечить соблюдение сроков? Я могу думать о двух, с плюсами и минусами:

  • правоприменение на стороне клиента: работает, но подвержено вмешательству
  • Применение на стороне сервера: не может быть подделано, но может вызвать проблемы из-за задержки между сервером и клиентом

есть мысли?

1 Ответ

0 голосов
/ 20 октября 2011

Я бы предложил принудительное применение на стороне клиента, подкрепленное проверкой работоспособности на стороне сервера. Вы можете разрешить задержки до 30 секунд или другое разумное значение на стороне сервера и объявить вмешательство на стороне клиента, если разница слишком велика.

Конечно, это позволит вмешиваться на стороне клиента, но только в течение определенного периода времени, который вы допускаете.


После написания комментария, приведенного ниже, я подумал о следующем: вы не можете доверять клиентскому javascript пинговать ваш сервер при загрузке страницы для расчета задержки - тривиально перехватить его. Но я не знаю, как я мог бы обмануть ответ перенаправления. Перед началом теста вы можете взять отметку времени и вернуть ответ о перенаправлении. Затем вы можете рассчитать задержку на стороне сервера на перенаправленной странице. Вы могли бы даже сделать это несколько раз, чтобы получить среднее значение. Я не знаю, насколько сложно было бы отложить обработку запроса перенаправления страницы, но это может обеспечить дополнительный уровень защиты. Также это может позволить вам дать более реалистичные границы задержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...