Как сделать сеансы WCF более безопасными? - PullRequest
3 голосов
/ 04 декабря 2009

скажем, у нас есть служба WCF, подобная той, что приведена в примерах из msdn - c #, calculatorservice, со всеми настройками службы по умолчанию.

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

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

как мы можем защитить наши услуги от этого?

Ответы [ 2 ]

3 голосов
/ 05 декабря 2009

Если вы боитесь, что злонамеренный хакер засорит ваш сервис поддельными сессиями, не используйте сессий! Используйте подход «по вызову» и аутентифицируйте своих пользователей, например, убедитесь, что они либо находятся в вашем домене Windows / AD, либо они знают имя пользователя / пароль для звонков в вашу службу.

Если злонамеренный хакер получит правильную комбинацию имени пользователя и пароля для вашей службы, вы не сможете сделать так, чтобы он постоянно отправлял вам 10 или 20 одновременных запросов и забивал вашу службу - по крайней мере, не на уровне службы WCF. WCF обеспечивает регулирование службы поведения для предотвращения 1 000 тысяч одновременных злонамеренных вызовов, чтобы защитить ваш сервер от переполнения и сбоя.

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

1 голос
/ 04 декабря 2009

Лучше всего было бы защитить службу WCF :

В этой статье я покажу вам, как Вы можете реализовать безопасность на WCF оказание услуг. Есть много вариантов и точки расширяемости для реализации безопасность в WCF. Вы также можете использовать конкретные продукты, такие как Windows Диспетчер авторизации сервера 2003, вместе с WCF для реализации требования авторизации решение. Из коробки, WCF поддерживает Учетные данные Windows, токены имени пользователя и цифровые сертификаты X.509 как учетные данные безопасности.

...