JSON веб-сервис безопасности - PullRequest
1 голос
/ 07 мая 2010

У меня проблема с безопасностью веб-службы json. Я пытался разработать пример веб-приложения, используя json webservice, но проблема в том, что URL был выставлен на стороне клиента. Таким образом, любой может создать программу и вызвать службу тысячу раз. Обратите внимание, что веб-служба будет использовать страницу регистрации, на которой проверяется, существует ли пользователь в базе данных. Так что в этом процессе не происходит аутентификация.

Каков подход к обеспечению безопасности вызова открытой веб-службы?

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Вот что я бы сделал:

  1. Поместите слой аутентификации между веб-службой и внешним миром (т.е. вместо того, чтобы сделать ваш веб-сервис общедоступным интерфейсом, сделайте слой аутентификации публичным API).

  2. Получите слой аутентификации, чтобы затем вызывать веб-службу от имени вызывающей стороны.

Таким образом, вы можете реализовать бизнес-логику на уровне аутентификации - например, просто откажитесь от вызывающего абонента, который пытается выполнить DOS-атаку или звонит с ненадежного IP-адреса и т. д. и т. д.

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

Это конфигурация, которую я бы использовал. как правило, не стоит раскрывать API для публики, если только вы не хотите, чтобы люди вызывали его и, возможно, время от времени злоупотребляли им.

0 голосов
/ 07 мая 2010

Вы можете фильтровать запросы по IP-адресу звонящего. Если IP-адрес вызывает ваш API, скажем, 100 раз в минуту, это злоупотребление, и вы блокируете от него следующие соединения. Не забывайте время от времени разблокировать IP-адреса, чтобы соблюдать динамические IP-адреса.

0 голосов
/ 07 мая 2010

Нет 100% защиты.В любом случае, кто-то может создать программу и использовать ваш сервис.Вы просто можете заставить программиста работать усерднее.

Главное, что вы можете сделать, это сделать задержку перед возвратом результата и ограничить количество подключений с одного ip.Также вы можете добавить что-то вроде идентификатора сеанса (срок действия которого истекает через 5-10 минут) на странице регистрации, который должен существовать в запросе на обслуживание.

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