Какую безопасность добавляет Silverlight clientaccesspolicy?

#silverlight #web-services #security #cross-domain

#silverlight #веб-сервисы #Безопасность #междоменный

Вопрос:

Вчера я получил вопрос от коллеги о механизме политики междоменного доступа Silverlight. Я не использовал это раньше, поэтому я немного почитал об этом. Я думаю, что я понимаю, как это настроить, но я не понимаю последствий для безопасности.

Если у меня, например, есть следующая настройка:

В этом случае политика клиентского доступа другого сайта может позволить silverlight-app на каком-либо сайте использовать othersite.com/service.svc сервис. Согласно MSDN, это гарантия безопасности службы:

При выборе служба заявляет, что операции, которые она предоставляет, могут безопасно вызываться элементом управления Silverlight без потенциально опасных последствий для данных, которые хранит служба.

Чего я не понимаю, так это как это обеспечивает какое-либо реальное преимущество в области безопасности. Служба — это просто еще одна soap-служба, которая может быть вызвана из любого soap-клиента, используя любые созданные параметры вызова. Если я запускаю wcftestclient против http://othersite/service.svc Я могу просто обойти clientaccesspolicy.xml и делаю все, что хочу.

Итак, какую безопасность обеспечивает clientaccesspolicy.xml действительно добавляет?

Ответ №1:

Это делается для предотвращения подделки межсайтовых запросов, когда вредоносное приложение Silverlight может выполнять действия от имени пользователя. Наличие правильно настроенного clientaccesspolicy.xml гарантирует, что запрос поступает из надежного приложения Silverlight.

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

Комментарии:

1. Если я правильно понимаю, это часть изолированной среды silverlight на компьютере пользователя. Изолированная среда silverlight не позволяет вредоносному приложению silverlight использовать файлы cookie аутентификации, хранящиеся в браузере пользователя, для выполнения действий на других сайтах. Если сайт обещает (через clientaccess.xml файл), что безопасно разрешить любому приложению silverlight доступ к сайту, с доступом к файлам cookie пользователя, открывается изолированная среда. Это верно?

2. @AndersAbel: Я не думаю, что это имеет какое-либо отношение к файлам cookie. Silverlight просто не открывает связь всякий раз, когда clientaccesspolicy.xml не найден или не соответствует запросу.

3. @the_drow: Если дело не в файлах cookie и т.д., То в чем преимущество безопасности от того, что Silverlight sandbox проверяет, нормально ли осуществляется связь с сервером, прежде чем разрешить соединение?

4. @AndersAbel: Таким образом, он не будет получать доступ к API, которого не должен.

5. @AndersAbel Ты прав. В запросы включаются файлы cookie. Смотрите также erlend.oftedal.no/blog/?blogid=107