我在代码审查中发现了以下内容:
Type type = Type.GetType(typeName);
if (type == typeof(SomeKnownType))
DoSomething(...); // does not use type or typeName
typeName
来自 AJAX 请求并且没有经过验证。 这会有任何潜在的安全问题吗? 例如,是否可能由于从任意程序集中加载任意类型而执行意外代码或导致整个应用程序崩溃(拒绝服务)?
(我想一些开玩笑的人可能会试图通过加载 GAC 中每个程序集中的每个类型来耗尽可用内存。有更糟糕的情况吗?)
注:
- 这是在完全信任下运行的 ASP.NET 应用程序。
- 生成的
type
仅用于上述显示。不会尝试实例化该类型。