запретить междоменные запросы к моим службам wcf - PullRequest
5 голосов
/ 02 июля 2011

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

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

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

1 Ответ

5 голосов
/ 03 июля 2011

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

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

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

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

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

...