Безопасно ли вызывать Type.GetType с ненадежным именем типа?C#

Место общения программистов C#
Anonymous
Безопасно ли вызывать Type.GetType с ненадежным именем типа?

Сообщение Anonymous »

При проверке кода я обнаружил следующее:

Код: Выделить всё

Type type = Type.GetType(typeName);
if (type == typeof(SomeKnownType))
DoSomething(...); // does not use type or typeName

Код: Выделить всё

typeName
возникает из запроса AJAX и не проверяется. Создает ли это какие-либо потенциальные проблемы безопасности? Например, возможно ли выполнение неожиданного кода или сбой всего
приложения (отказ в обслуживании) в результате загрузки произвольных типов из произвольных сборок?

(Я полагаю, какой-нибудь шутник может попытаться исчерпать доступную память, загрузив каждый тип из каждой сборки в GAC. Что-нибудь хуже?)

Примечания.
  • Это приложение ASP.NET, работающее с полным доверием.
  • Полученный тип используется только, как показано выше. Попытки создать экземпляр типа не предпринимаются.

Вернуться в «C#»