предотвратить междоменные запросы к моим службам wcf

Я использую службы пользовательского интерфейса wcf для связи между моим javacsript (jquery) и кодом на стороне сервера. Я считаю эту работу эффективной.

Однако я хочу сделать его более безопасным. Я могу настроить wcf так, чтобы запросы к службам можно было делать только из одного и того же домена, чтобы внешние клиенты не могли делать такие запросы к моим службам.

Так, например, мой URL-адрес операции службы: http://www.website.com/Service.svc/GetProducts. Я хочу настроить wcf так, чтобы разрешались только запросы со страниц в http://www.website.com. . Я предполагаю, что это относится к междоменным запросам wcf, но мне нужна помощь в настройке. Помощь была бы отличной.


person amateur    schedule 02.07.2011    source источник


Ответы (1)


Это просто невозможно, если ваши сервисы доступны в Интернете.

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

Любой пользователь всегда может использовать прокси-сервер отладки, такой как Fiddler, Charles и т. д., или такой инструмент, как WireShark, для отправки любых данных в ваши службы, включая полное воспроизведение запроса, сделанного через браузер. (Включая http-заголовки реферера и т. д.).

Если ваша ситуация позволяет это, возможно, вы могли бы рассмотреть возможность использования устройства VPN или чего-то подобного и ограничить доступ пользователей внутри вашей сети (или входящих через VPN). Таким образом, вы меньше беспокоитесь о безопасности служб... однако общеизвестно, что «внутренние злоумышленники» столь же распространены, если не более, чем внешние... так что не расслабляйтесь.

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

person Steve    schedule 03.07.2011