相关疑难解决方法(0)

使用不受信任的类型名称调用Type.GetType是否安全?

我在代码审查中遇到了以下内容:

Type type = Type.GetType(typeName);
if (type == typeof(SomeKnownType))
    DoSomething(...); // does not use type or typeName
Run Code Online (Sandbox Code Playgroud)

typeName源自AJAX请求,未经过验证.这是否会带来任何潜在的安全问题?例如,作为从任意程序集加载任意类型的结果,是否可能执行意外代码,或整个应用程序崩溃(拒绝服务)?

(我想一些小丑可能会尝试通过加载GAC中每个程序集的每种类型来耗尽可用内存.更糟糕的是什么?)

笔记:

  • 这是在完全信任下运行的ASP.NET应用程序.
  • 将所得的type使用如上所示.没有尝试实例化该类型.

.net c# asp.net security

28
推荐指数
1
解决办法
821
查看次数

标签 统计

.net ×1

asp.net ×1

c# ×1

security ×1