【问题标题】:Running DLR Embedded Scripts in Minimum Security Context在最低安全上下文中运行 DLR 嵌入式脚本
【发布时间】:2010-02-28 14:32:05
【问题描述】:

我需要指出正确的方向。我已将 Iron Python 脚本主机嵌入到一个简单的 C# 应用程序中,但现在我需要了解在用户生成的 IronPython 或 IronRuby 脚本上锁定安全性的最佳实践。

具体来说,防止库导入的策略是什么?在 .NET 中是否有办法在不同的安全上下文中运行代码块或线程,例如防止文件系统访问?此外,是否可以为这个上下文分配一个内置级别或角色而不是一个实际用户?

谢谢!

【问题讨论】:

    标签: c# .net ironpython ironruby dynamic-language-runtime


    【解决方案1】:

    您应该在不同的 appdomain 中运行脚本主机,并通过 Evidence 属性使用 sandboxing API 设置安全策略

    【讨论】:

    • Sergey,这会阻止 IronPython open('c:\\file.txt') 调用吗?
    • 不确定 Python,但如果它使用 System.IO 命名空间打开文件肯定是的。
    • 我猜你是个 IronRuby 人。锁定的 AppDomain 会阻止 ruby​​ 的本机文件方法工作吗?
    • 当然!请记住 IronRuby 的原生文件方法最终是 System.IO 操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2011-02-10
    • 2018-07-25
    • 2014-05-04
    相关资源
    最近更新 更多