Поддержка клиентов через веб-сервис - как обезопасить веб-сервис? - PullRequest
0 голосов
/ 02 октября 2009

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

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

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

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

Так что я застрял здесь. Есть ли способ сделать это правильно и предотвратить атаки DOS на мой веб-сервис или веб-сервис вообще не подходит для этого?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 октября 2009

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

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

0 голосов
/ 02 октября 2009

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

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

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