Во-первых, чтобы ответить на ваш вопрос: система безопасности предназначена для защиты ХОРОШИХ ПОЛЬЗОВАТЕЛЕЙ от ПЛОХОГО КОДА ; он явно не предназначен для защиты ХОРОШЕГО КОДА от ПЛОХОГО ПОЛЬЗОВАТЕЛЯ . Ваши ограничения доступа уменьшают атаки на ваших пользователей с помощью частично доверенного враждебного кода . Они не уменьшают атак на ваш код от враждебных пользователей . Если угроза заключается в том, что ваш код получают враждебные пользователи, то у вас есть большая проблема. Система безопасности вообще не уменьшает эту угрозу.
Во-вторых, чтобы ответить на некоторые из предыдущих ответов: понимание полной взаимосвязи между отражением и безопасностью требует тщательного внимания к деталям и хорошего понимания деталей системы CAS. Ранее опубликованные ответы, в которых говорится, что нет никакой связи между безопасностью и доступом из-за рефлексии, вводят в заблуждение и ошибочны.
Да, рефлексия позволяет вам переопределить ограничения "видимости" (иногда). Это не означает, что нет никакой связи между доступом и безопасностью. Связь заключается в том, что право использовать отражение для отмены ограничений доступа тесно связано с системой CAS несколькими способами.
Прежде всего, для произвольного коду должно быть предоставлено разрешение на частное отражение системой CAS. Обычно это предоставляется только полностью доверенному коду, который, в конце концов, может делать что угодно .
Во-вторых, предположим, что в новой модели безопасности .NET сборке A предоставлен расширенный набор разрешений для сборки B системой CAS. В этом сценарии в сборке A разрешено использовать отражение для наблюдения за внутренними элементами B.
В-третьих, все становится действительно довольно сложно, когда вы добавляете динамически сгенерированный код в смесь. Объяснение того, как работает «Пропустить видимость» и «Ограниченная пропускаемость», и как они изменяют взаимодействие между отражением, контролем доступа и системой безопасности в сценариях, когда код выполняется во время выполнения, займет у меня больше времени и места, чем я есть в наличии. См. Блог Шона Фаркаша, если вам нужны подробности.