Web Services 我被迫使用Process,但我需要类似AppDomain的安全策略,如何做到这一点?

abithluo  于 2023-04-12  发布在  其他
关注(0)|答案(1)|浏览(152)

alt text http://img185.imageshack.us/img185/2080/mydiagram.png
Maxima.exe是一个以本地代码而不是托管代码构建的计算机代数系统。MyService作为套接字服务器工作,它将为每个浏览器示例化一个新的Maxima进程,向Web服务器提交数学表达式。
我不能在这里使用AppDomain,因为Maxima是本机代码。但是我希望AppDomain提供的安全策略,例如限制在文件系统上写入数据。
我的问题是,当我在进程中而不是在AppDomain中示例化Maxima时,如何才能获得类似AppDomain的安全策略?

6uxekuva

6uxekuva1#

由于Maxima.exe是本机可执行文件,您可以应用的唯一安全策略是基础Windows操作系统支持的安全策略。不幸的是,这意味着您的选择非常有限:你能做的唯一真正有用的事情是在一个用户帐户的上下文中运行Maxima.exe,该用户帐户具有有限的权限。2当涉及到禁止对系统的大部分内容进行写访问时,这应该足够了。
过时但仍然有用的文章Safe Impersonation With Whidbey展示了如何在另一个用户帐户的上下文中运行worker函数:然后,您将从该worker函数启动Maxima.exe。
当然,以受限用户身份运行仍然会允许不同的Maxima.exe示例在一定程度上相互干扰(即覆盖在示例工作目录中创建的文件)。使用唯一的随机创建的工作目录(例如基于GUID)启动每个示例可以为您的目的提供足够的安全性:如果没有,您实际上可能需要为每个示例创建不同的用户帐户(或者至少为此目的创建一个用户帐户池)。
最后,这一切都归结为“我如何使用仅限Windows基础的功能来解决我的安全问题”,不幸的是,你将无法访问更好的.NET安全功能或非Windows平台上的设施(jail,systrace等)。

相关问题