2009-10-02 2 views
0

Мои клиенты могут задавать вопросы непосредственно в моем приложении (окнах). Приложение обращается к веб-службе, которая хранит сообщения в db на моем сервере. Проблема: Участник решает спамить мою веб-службу. Что я могу сделать, чтобы предотвратить это, и существует ли криптографический способ сделать это?Поддержка клиентов через веб-службу - как защитить веб-службу?

То, что я придумал до сих пор являются:

  1. Скрыть информацию WSDL так злоумышленник не знает интерфейс веб-службы. Анализ моего кода или обнюхивание трафика покажет эту информацию быстро.

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

Так что я довольно застрял здесь. Есть ли способ сделать это правильно и предотвратить атаки dos на мой веб-сервис или это веб-сервис, который неправильно делает это в целом?

Спасибо y'all.

ответ

0

Вы правы, закрывая ключ в своем приложении, не замедлит никого, независимо от того, как сильно вы его запутываете. Также не представляет собой неизвестность ваших метаданных WS.

Возможно, лучший способ (если вы не можете сделать аутентификацию) - это дроссельная заслонка по IP (один комментарий за интервал X). Просто держите в памяти словарь IP-адресов клиентов, и в последний раз, когда вы увидели комментарий оттуда, и быстро отклоните запросы, если они произойдут слишком рано. По крайней мере, это потребует большой DDOS, чтобы вызвать серьезные проблемы. Пополняйте словарь для старых записей каждый час или около того, чтобы он не рос без ограничений.

0

@nitzmahone является правильным. Просто добавьте к этому: это ничем не отличается от того, что кто-то рассылает веб-форму. Если вы действительно беспокоитесь об этом, вы можете делать то, что делают веб-формы (например, сервер отправляет токен и изображение CAPTCHA, пользователь декодирует CAPTCHA, клиентское приложение отправляет токен, декодирует CAPTCHA и фактический запрос).

Как и в веб-приложениях, вы можете включить эту функцию только в том случае, если трафик с определенного IP-адреса превышает определенный порог.

Смежные вопросы