【问题标题】:Are there possible security concerns with exposing system.dll via web service?通过 Web 服务公开 system.dll 是否存在安全问题?
【发布时间】:2011-02-06 04:25:30
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# web-services visual-studio-2010 compiler-construction dynamic-code


    【解决方案1】:
    1. 您可以创建一个不符合您的 5 秒规则的新线程 (mscorlib.dll),使用 WebClient (System.dll) 下载删除二进制文件并使用 Process (System.dll) 执行它。
    2. 只是一个循环会创建数千个永远循环的线程,会消耗大量 CPU 时间。

    【讨论】:

    • @simon-svensson 马上!我在想只导入 System 会阻止这样的事情,但当然你可以直接引用 System.Net 命名空间。
    【解决方案2】:

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

    【讨论】:

    • 我将不得不尝试一个示例来了解如何在加载的程序集上实现部分信任。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 2017-11-28
    • 1970-01-01
    • 2012-03-13
    • 2015-07-18
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多