Безопасность на общедоступном веб-сервисе WCF - PullRequest
2 голосов
/ 19 ноября 2010

Я создаю сложную общедоступную веб-службу в WCF, которая отправляет электронную почту на определенный адрес, аналогично форме контакта, но с некоторыми функциями.С помощью jQuery я получаю данные из текстового поля, а с помощью Ajax и json я отправляю в веб-службу строки для продолжения отправки.

Теперь, есть ли хороший способ сделать это безопасным?

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

Спасибо.

Ответы [ 2 ]

6 голосов
/ 19 ноября 2010

Если служба WCF размещена в IIS, вы можете разрешать вызовы только с определенного IP-адреса, посмотрите параметры безопасности каталога в IIS.

3 голосов
/ 19 ноября 2010

На сегодняшний день самый простой способ - чтобы ваш веб-сервис требовал какой-то ключ доступа для запуска операции.

Будет работать что-то простое, такое как GUID в кодировке base64. Это даже не должно измениться. Просто добавьте параметр с именем «AccessKey» или что-то подобное. Пусть ваше приложение передаст это, и пусть служба подтвердит, что оно хорошо.

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


Ни один из них не идеален. Первый означает, что ваш «ключ» будет находиться внутри HTML, который вы отправляете клиенту. Второй может быть подделан.

Лично я, вероятно, не стал бы беспокоиться об этом уровне и просто регистрировал бы, что делает служба. Если подсчет трафика к сервису начнет превышать то, что, как вы думаете, должно быть, я бы искал способы его смягчения. Скорее всего, учитывая, что это услуга, вы не увидите никаких проблем.

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