gpt4 book ai didi

c# - 防止不受信任的 C# 代码启动新线程或黑名单/白名单 API

转载 作者:行者123 更新时间:2023-11-30 22:39:52 24 4
gpt4 key购买 nike

我正在实现一个将加载和执行第 3 方代码的应用程序。

虽然 .NET 沙盒很好,但我找不到阻止代码启动新线程的方法。

这是一个问题,因为据我所知,我们无法安全地枚举和中止它们以卸载沙箱 AppDomain - 我们必须退出整个过程。

我如何禁止 Thread.Start 或(更好的)白名单/黑名单特定 CLR API?

最佳答案

您需要创建脚本环境而不是运行编译代码。在这种环境中,您可以解析出不受支持/不需要的关键字。

http://msdn.microsoft.com/en-us/library/ms974577.aspx

http://osherove.com/blog/2004/2/17/make-your-net-application-support-scripting-a-practical-appr.html

http://www.codeproject.com/KB/library/Dotnet_Scriptor.aspx

可能有一些方法可以限制在 AppDomain 中运行的代码的权限,这就是您所说的沙盒吗?

Good example of use of AppDomain

如果 cpu 和内存出现“不良情况”,您可能会强制卸载 AppDomain。

最近在 .net 4 中我注意到但没有调查 HostProtection Permissions ...

System.Security.Permissions hostprotectionattribute

=== 编辑 ===

看起来设置了安全权限的 CLR 托管是可行的方法。链接...

What is CLR hosting?

http://msdn.microsoft.com/en-us/library/hbzz1a9a(v=vs.90).aspx

http://msdn.microsoft.com/en-us/library/h846e9b3(v=vs.90).aspx

http://msdn.microsoft.com/en-us/library/system.security.permissions.securitypermission(v=vs.90).aspx

关于c# - 防止不受信任的 C# 代码启动新线程或黑名单/白名单 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5508712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com