2015-06-27 2 views
0

Возможно ли заблокировать подключения к веб-службе (серверу) из-за пределов ее домена?Возможно ли ограничить доступ веб-службы к собственному веб-приложению?

Например, рассмотрите веб-приложение, которое извлекает данные из API Twitter с помощью «приложения только для авторизации» Twitter. Клиент веб-приложения использует AJAX для вызова своего собственного сервера, который, в свою очередь, вызывает API Twitter с помощью токена Twitter.

В то время как токен никогда не подвергается коду на стороне клиента, есть ли что-либо, чтобы остановить внешнее приложение на стороне сервера от вызова сервера веб-приложения, используя URL-адреса, используемые клиентом, и, например, исчерпывающие лимиты ставок токенов Twitter?

ответ

0

Возможно ли заблокировать соединения с веб-службой (сервером) за пределами ее домена?

Конечно. Установите списки управления доступом вашего веб-сервера, чтобы удалить соединения из-за пределов вашего IP-диапазона. В качестве альтернативы установите брандмауэр. Это очень просто, но я подозреваю, что вы имеете в виду что-то еще «вне его домена»?

Из вашего описания вы, кажется, действительно спрашиваете, проверяете ли вы, что вы разговариваете только с вашим собственным клиентским приложением. Как правило, нет. Вы можете подтвердить подлинность пользователей. Это легко. Если пользователь не выполнил вход и не разрешил использовать вашу услугу, вы не отправляете запросы в Twitter. Но вы не можете аутентифицировать приложения.

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

Это не все безнадежно; есть вещи, которые вы можете сделать. См. https://stackoverflow.com/a/9183066/97337 для другой версии этого вопроса и ссылки на несколько других вариантов вопроса. (Они не совсем дублируются в том, как их спрашивают, но все они заканчиваются в основном тем же самым ответом.)

0

Вы должны защитить свой веб-сервис с помощью безопасности пользователя и пароля или безопасности сертификата. Основная идея заключается в том, что клиент веб-службы должен пройти аутентификацию, чтобы позвонить вашему веб-сервису.

Вот некоторые техники (есть и другие, или вариации):

1) HTTP базовая аутентификация и HTTPS

2) проверка подлинности Взаимная SSL - Также называется двухсторонняя аутентификация, представляет собой процесс, в котором оба объекты аутентифицируются друг с другом. Сервер представляет сертификат клиенту, а клиент представляет сертификат на сервер.

3) С помощью веб-сервисов SOAP вы можете использовать стандарт WS-Security.

4) OAuth рамки

5) С услугами отдыха вы можете использовать варианты 1), 2), 4). Или реализовать его самостоятельно. This - хорошие рекомендации.

Как вы можете видеть, существует множество способов обеспечения безопасности веб-службы.

+0

Обратите внимание, что все это полезно, если вы выполняете аутентификацию пользователя своей службы (так как вы можете дать каждому человеку учетные данные, которые они хранят в голове). Они не полезны для аутентификации приложения. –

+0

Хорошие баллы, но, как сказал @RobNapier, я имел в виду ситуацию с «приложением приложения», когда пользователи не аутентифицируются. – user847294301

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