【发布时间】:2018-03-27 01:48:42
【问题描述】:
我需要允许一些用户上传一些将在服务器上运行的插件 dll(基于 asp.net 核心)作为一些自定义脚本(我不想使用 javascript 或任何其他语言来限制 api 可访问性)。 如何防止用户 dll 访问 System.IO 等 .net API 以避免服务器上的潜在安全问题?
【问题讨论】:
-
您不能限制在 .net 中运行的代码。 .net 核心没有信任级别,并且被发现已被破坏。
-
必须有一些解决方案来限制,但我不知道该怎么做。见the official online code tester@Daniel A. White
-
你可以在 docker 容器中运行它。那会更加孤立
-
不,它实际上并没有解决问题,因为外部 dll 也会影响当前服务@Daniel A. White
-
否 - 定义 dll 必须实现的合约。使其成为控制台应用程序或 Web 应用程序。但要求消费者将其写在 docker 容器中。针对该服务运行 - 您可以跳过容器或不为您的应用程序
标签: c# asp.net-core .net-core asp.net-core-2.0 system.reflection