Какой риск позирует отражение? (Средний доверие)
-
18-09-2019 - |
Вопрос
Недостаток размышлений в среде хостинга средних доверия, кажется, вызвать много проблем Для многих популярных веб -приложений.
- Почему RefretectionPermission Отключил по умолчанию со средним доверием?
- Какой риск отражает отражение в общей среде хостинга?
Для случайной ссылки см. MSDN: как использовать среднее доверие в ASP.NET 2.0
Решение
Отражение позволяет вредоносному коду осматривать все виды секретов: не столько интеллектуальная собственность (хотя и конечно, это тоже), но данные, которые должны быть частными и безопасными, например, строки соединения, пароли, данные банковского счета и т. Д.
Конечно, многие программы разоблачают эти данные как, конечно, еще более удобно скомпрометированными векторами, но нет никаких оснований для увеличения поверхности атаки приложения.
Отредактировано, чтобы провести часть разговора из комментариев:
Вероятно, верно, что реальный риск - это неограниченный доступ к файловой системе, который превращает отражение в реальную опасность. Если плохой актер может получить сборку (или что -то, что собирается в сборку) в ваш виртуальный каталог, у вас проблемы, если у них есть разрешение на отражение. (Конечно, если это произойдет, есть и другие потенциальные проблемы, но это не должно сбрасывать со счетов эту конкретную уязвимость.)
В общей среде хостинга, это труднее предотвратить, хотя это, безусловно, невозможно. Возможно, стоит перекрепить этот вопрос Серверффол Чтобы увидеть, что говорят хорошие люди.
Другие советы
Я никогда не нашел ничего «плохого», что пользователь сможет делать с помощью отражения. Люди боятся, потому что вы можете назвать методы, которые отмечены как частные или защищенные, но из того, что я видел, ни один из них не налагает реального риска.
Скорее всего, это, по крайней мере, частично за техникой продаж, чтобы вы вышли на (полу) выделенный хостинг :)
Я нашел следующую статью MSDN по этому вопросу:
Соображения безопасности для размышлений
Эта статья эхо ответит Джеффа:
Отражение дает возможность получать информацию о типах и членах и доступа к членам. Доступ к непубличным членам может создать риск безопасности. Следовательно, код, который обращается к непубличным членам, требует отражающего средства с соответствующими флагами.
Тем не менее, я не верю, что этот риск может быть использован между учетными записями хостинга клиента. Похоже, это будет лишь личный риск. Например, используя отражение, я мог бы исследовать свои собственные собрания в моей среде хостинга. Другие клиенты, однако, не могли использовать размышления, чтобы исследовать мой собрания. Они могли только исследовать их собрания.
Это может создать проблему для одного веб -приложения, которое включает в себя несколько команд разработчиков. Одна команда разработчиков может использовать размышления, чтобы исследовать собрания другой команды разработчиков.
Тем не менее, это редкий сценарий для общей среды хостинга. Большинство общих веб -сайтов хостинга включают в себя очень маленькую команду, которая имеет полный доступ к все код. Другими словами, нет секретов. Пока сборка безопасна от других общих клиентов хостинга, тогда это не проблема.
Включение размышлений не должно представлять какого -либо риска для большинства веб -приложений общего хостинга:
<IPermission class="ReflectionPermission" version="1" Flags="RestrictedMemberAccess"/>
Пожалуйста, поправьте меня, если я ошибаюсь.