Аутентификация запроса веб-службы на стороне клиента в кэшированной среде - PullRequest
0 голосов
/ 28 июня 2010

Мы создаем набор внешних веб-сервисов, которые будут использоваться клиентом (используя jquery / AJAX) посетителями нашего сайта. Веб-сервисы должны быть общедоступными, но мы хотели бы ограничить доступ посетителей сайта.

Важно отметить, что рассматриваемый сайт находится за CDN, и мы кэшируем содержимое страницы в течение 24 часов; AJAX-запросы желательно также кэшировать, но я думаю, что это ограничит наши возможности аутентификации. Наши посетители получают доступ к сайту и услугам анонимно.

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

Я думаю об общем секрете, который ежедневно обновляется и используется всеми клиентами на всем сайте; любой запрос веб-службы будет включать в себя секрет. Довольно простой, но есть ли другие, более эффективные способы для службы определять происхождение вызывающего абонента способом, который не может быть подделан?

1 Ответ

0 голосов
/ 28 июня 2010

Если угроза вашему веб-сервису связана с тем, что кто-то автоматизирует клиентские вызовы, вы можете установить ограничение скорости на стороне сервера. Как вы правильно заметили, клиент может быть обязан предоставить ключ для каждого запроса. В качестве альтернативы, если только смертные собираются взаимодействовать с веб-сервисом, вы также можете внедрить проверку взаимодействия с человеком, такую ​​как капча и т. Д. Одна вещь, которую необходимо удостовериться, состоит в том, что тот «ключ», который будет использоваться клиентом, должен передаваться контролируемым образом. Однажды я наткнулся на систему, которая в основном выдавала неограниченное количество ключей - это означает, что управление автоматизацией будет неэффективным, поскольку злоумышленник может запросить столько ключей и совершить неограниченное количество вызовов. Если вы ограничиваете использование IP-адреса, убедитесь, что вы ограничиваете запросы на сетевую часть IP-адреса (ABCX), так как хост-часть (X) может измениться (когда пользователи находятся за прокси-сервером). Если ваши клиенты анонимны, лучший / самый близкий идентификатор Это действительно адрес.

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