Я участвовал во многих веб-приложениях, но никогда не использовал CAS, возможно, никогда не чувствовал необходимости использовать то же самое.
Когда нужно использовать CAS? Действительно ли люди используют его в своих приложениях?
Я участвовал во многих веб-приложениях, но никогда не использовал CAS, возможно, никогда не чувствовал необходимости использовать то же самое.
Когда нужно использовать CAS? Действительно ли люди используют его в своих приложениях?
CAS действительно полезен (так сказать) только в настольных приложениях, где вы хотите ограничить то, что приложение, запущенное из сети (например), может делать на локальном компьютере. Я обнаружил, что обман с CAS вызывает большую бессмысленную головную боль даже в этих обстоятельствах. Конфигурация по умолчанию, как правило, наиболее разумна.
Очевидно, что этот тип модели гораздо менее полезен для веб-приложения, поскольку вы неявно доверяете всему коду в приложении.
Думаю, я должен быть одиноким голосом в пустыне и не согласен с другими респондентами здесь.
Как я уточнил в мой ответ на аналогичный вопрос несколько месяцев назад, есть определенные сценарии, в которых CAS это путь. Конечно, это применимо только в том случае, если вы очень заботитесь о безопасности и имеете дело с чувствительной системой, И, учитывая, что это просто обеспечивает дополнительный уровень защиты, вы, вероятно, не доберетесь до того места, где вам это нужно, пока вы устраняете все другие серьезные проблемы в своем приложении.
Опять же, CAS дает вам возможность ограничивать то, что может делать ваше ПРИЛОЖЕНИЕ, а не только ваших пользователей, и очень детально.
Я никогда не видел, чтобы его использовали.
Он существует исключительно для того, чтобы вы могли указать максимальный уровень безопасности, на котором должен работать ваш код. Это больше механизм защиты от судебных исков, чем что-либо еще, в том смысле, что вы можете заявить, что ваш код не может быть авторизован для выполнения определенной функции. .
Лично я считаю, что это пустая трата времени, поскольку он не обеспечивает реальной защиты базовой операционной системы.
Вот дополнительная информация об этом от Microsoft: http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx
Единственное место, где я когда-либо сталкивался с CAS, - это Sharepoint, где он используется для ограничения того, к чему пользовательская сборка в каталоге BIN может иметь доступ (например, объектная модель sharepoint). Многие люди думают, что CAS слишком сложен и не стоит усилий, поэтому в конечном итоге они бросают сборку в GAC. Но если вы это сделаете, то вам лучше тщательно изучить код на предмет каких-либо угроз безопасности.
Я однажды столкнулся с этим, когда изучал WPF. Он использовался в этом руководстве по судоку для загрузки подключаемых модулей. от других пользователей. Для подключаемого модуля был создан специальный домен с ограниченными правами доступа, а взаимодействие осуществлялось с помощью удаленного взаимодействия .NET. Учебное пособие дает хорошее представление о безопасной загрузке плагинов.
VSTO - полезная технология, позволяющая запускать управляемый код, написанный на языке .NET, из документов Office. вместо использования VBA. Это требует использования caspol на клиентских машинах двумя способами:
Permission Office запускает библиотеки DLL из места, где они развернуты.
Разрешение Office на запуск DLL из места, где был открыт документ Office.
Я обнаружил, что caspol - это кошмар, и я думаю, что, как и Makefiles, только 1 сценарий caspol был написан с нуля.
Я должен согласиться с другими мнениями здесь CAS - одна из тех вещей, которые могут хорошо выглядеть на бумаге, но я никогда не видел, чтобы она использовалась в серьезных LOB-приложениях, и, вероятно, никогда не буду. Что меня поражает, так это то, что сейчас люди часто задают вопросы, связанные с CAS, на собеседовании, это совершенно бессмысленно. :)
Примером CAS является приложение WPF, размещенное в браузере (.xbap).
Проблема заключается в том, как защитить клиентов от управляемого кода, запущенного в домене приложений, размещенном в браузере.
Для этого WPF (точнее, PresentationHost.exe) создает домен приложения с ограниченными разрешениями. Код, работающий в его границах, работает с ограниченным набором разрешений (например, без ввода-вывода файла, без доступа к реестру, только безопасная печать и т. Д.).
Другая точка зрения, которую следует учитывать при размышлениях о полезности CAS, - это обставить кого-то, кто пишет библиотеку, которая будет установлена на клиентских машинах. Как вы защищаете клиентские машины и их сети от частично доверенного кода, запущенного в браузере, например. как часть приложения WPF, вызывающего эти библиотеки? CAS помогает решить головоломку, выдвигая соответствующие требования, поэтому частично доверенный код имеет доступ только к безопасным функциональным возможностям.