В обзоре кода я встретил следующее:
Type type = Type.GetType(typeName);
if (type == typeof(SomeKnownType))
DoSomething(...); // does not use type or typeName
typeName
берется из запроса AJAX и не проверяется. Означает ли это какие-либо потенциальные проблемы с безопасностью? Например, возможно ли выполнение неожиданного кода или для всего
приложение для сбоя (отказ в обслуживании), в результате загрузки произвольных типов из произвольных сборок?
(Я полагаю, что какой-нибудь джокер может попытаться исчерпать доступную память, загружая каждый тип из каждой сборки в GAC. Что-нибудь хуже?)
Примечания:
- Это приложение ASP.NET, работающее под полным доверием.
- Полученный
type
используется только как показано выше. Не пытайтесь создать экземпляр типа.