Проверка сервера / клиента? - PullRequest
3 голосов
/ 19 августа 2009

Мы рассматриваем создание программы, которая отправляет запрос POST серверной программе для некоторой обработки. Мы хотели бы рассмотреть некоторую проверку, чтобы убедиться, что запрос POST не является случайным спамером, пытающимся перегрузить нашу систему или что-то в этом роде. Я не слишком много знаю об этом, но я подумал, что клиент может отправить date-num и «зашифрованный» date-num (не зашифрованный, просто используя какой-то особый алгоритм). Затем сервер будет одновременно шифровать дату-номер И расшифровывать зашифрованный клиентом номер-дату. Если зашифрованные даты-числа или расшифрованные числа-даты не совпадают, очевидно, это не был запрос от нашего клиента, поэтому сервер не будет выполнять запрос.

Как я уже сказал, я мало что знаю об этом. Я иду об этом правильным путем? Есть ли способ лучше? Если это нормально, где я могу искать алгоритмы «шифрования»? (Большинство алгоритмов, которые я нахожу, предназначены для безопасного шифрования и могут быть расшифрованы только на той же машине. Меня не волнует безопасность - я просто ищу подтверждение).

Большое спасибо за помощь.

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

EDIT: Чтобы уточнить, код сервера должен быть как можно более «выпадающим» - например, если это можно сделать с помощью простого PHP или ASP.NET, а не копаться в конфигурациях сервера, то это было бы лучше. То же самое на стороне клиента. Имейте в виду, это не обязательно должно быть безопасным, мы просто пытаемся не допустить, чтобы спаммеры размещали случайные данные миллион раз.

Ответы [ 3 ]

1 голос
/ 19 августа 2009

Попробуйте использовать криптографический одноразовый номер .

  1. На странице, с которой запускается POST, генерируется случайное число и сохраняется в базе данных с запрашивающим IP-адресом и временем истечения (15-30 минут?).
  2. То же случайное число сохраняется в качестве переменной POST.
  3. На POST, для того, чтобы обработка произошла, должен быть успешный поиск, соответствующий одноразовому номеру и IP-адресу до истечения срока действия.

В сочетании с honeypot captcha он должен хорошо защищать ботов от нагрузки на вашу систему.

1 голос
/ 19 августа 2009

Вы можете использовать ssl и клиентские сертификаты и позволить веб-серверу обрабатывать их прозрачно. Таким образом, и сервер, и клиент могут (более или менее) быть уверенными в том, с кем они разговаривают.
Каким будет ваш веб-сервер? IIS, Apache, ...?
Если это Apache, взгляните на httpd 2.2 документы, Аутентификация клиента и Контроль доступа .
Если это IIS, см. Включение клиентских сертификатов в IIS 6.0 (IIS 6.0)

0 голосов
/ 19 августа 2009

Обычный подход к такой проблеме - включение HMAC . Это позволяет проверять целостность и проверять подлинность отправителя с использованием секретного ключа.

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