Какова цель CAS (Code Access Security)? - PullRequest
8 голосов
/ 07 января 2009

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

Когда необходимо использовать CAS? Люди на самом деле используют его в своих приложениях?

Ответы [ 8 ]

3 голосов
/ 07 января 2009

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

Этот тип модели, очевидно, гораздо менее полезен для веб-приложения, поскольку вы неявно доверяете всему коду в приложении.

3 голосов
/ 26 февраля 2009

Полагаю, я должен быть одиноким голосом в пустыне и не соглашаться с другими респондентами здесь.
Как я описал в мой ответ на аналогичный вопрос несколько месяцев назад, существуют конкретные сценарии, в которых CAS - это путь. Конечно, это применимо, только если вы очень заботитесь о безопасности и имеете дело с чувствительной системой, и, учитывая, что это просто обеспечивает дополнительный уровень защиты, вы, вероятно, не доберетесь до места, где вам это нужно до Вы исправляете все другие серьезные проблемы в своем приложении.
Опять же, CAS дает вам возможность ограничивать возможности вашего ПРИЛОЖЕНИЯ, а не только пользователей, и очень детальным образом.

2 голосов
/ 07 января 2009

Единственное место, где я когда-либо сталкивался с CAS, - это Sharepoint, где он используется для ограничения доступа к пользовательской сборке в каталоге BIN (например, объектная модель sharepoint). Многие люди думают, что CAS слишком сложен и не стоит проблем, поэтому они в конечном итоге бросают сборку в GAC. Но если вы сделаете это, то лучше изучить код на предмет любых угроз безопасности.

1 голос
/ 07 января 2009

VSTO - это полезная технология, которая позволяет запускать управляемый код, написанный на языке .NET, из документов Office вместо использования VBA. Требуется использовать caspol двумя способами на клиентских машинах:

  • Разрешение Office на запуск DLL из места, где развернуты DLL.

  • Разрешение Office на запуск DLL из того места, где был открыт документ Office.

Я обнаружил, что caspol - это кошмар, и я думаю, что, как и в Makefiles, только 1 сценарий caspol был написан с нуля.

1 голос
/ 07 января 2009

Я столкнулся с ним один раз, когда изучал WPF. Он использовался в этом руководстве по судоку для загрузки плагинов от других пользователей. Для плагина был создан специальный домен приложения с несколькими правами доступа, и связь осуществлялась с помощью .NET remoting. Учебное пособие дает хорошее представление о безопасной загрузке плагинов.

1 голос
/ 07 января 2009

Я никогда не видел его использованным.

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

Лично я считаю, что это пустая трата времени, поскольку она не обеспечивает реальной защиты базовой операционной системы.

Вот еще немного информации об этом от Microsoft: http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx

0 голосов
/ 24 июня 2009

Пример CAS приведен в приложениях, размещенных в браузере WPF (.xbap).

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

Для этого WPF (точнее, PresentationHost.exe) создает домен приложения с ограниченными разрешениями. Код, который выполняется в пределах его границ, запускается с ограниченным набором разрешений (например, без ввода-вывода файла, без доступа к реестру, только безопасная печать и т. Д.).

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

0 голосов
/ 07 января 2009

Я должен согласиться с другими мнениями здесь & ndash; CAS - это одна из тех вещей, которые могут хорошо выглядеть на бумаге, но я не видел, чтобы никогда не использовался в серьезных LOB-приложениях, и я, вероятно, никогда этого не сделаю. Меня поражает то, что люди часто задают вопросы, связанные с CAS, на собеседованиях - ndash; теперь , что совершенно бессмысленно. :)

...