3

我很好奇仅仅访问 C# 中的 System.dll 命名空间会造成什么损害。

我正在玩动态代码编译并创建了一个简单的网站,允许我输入 C# 代码。这通过 Web 服务传递给一个类,该类在新线程中编译和运行代码,并通过 WS 返回(代码必须返回一个字符串)结果并显示在网页上。

现在我有一个简单的检查来中止线程,如果它运行超过 5 秒,以确保像无限循环这样简单的东西不会崩溃。

“假设地”说,如果我发布了这个 Web 应用程序,是否有人可以通过访问 System.dll 对 Web 服务器造成严重/任何损害?

**某些示例的奖励积分!:)

4

2 回答 2

6
  1. 您可以创建一个不符合您的 5 秒规则的新线程 (mscorlib.dll),使用 WebClient (System.dll) 下载删除二进制文件并使用 Process (System.dll) 执行它。
  2. 仅仅一个创建数千个永远循环的线程的循环就会消耗大量的 CPU 时间。
于 2011-02-06T04:40:00.520 回答
0

如果您以部分信任运行并适当限制权限,则不会。如果你不......好吧,System.dlland的功能几乎没有限制mscorlib.dll,因为这是实现反射的地方。

于 2011-02-06T05:02:42.543 回答