2011-01-05 4 views
2

저는 "Sandbox Ironpython"을 말하고 있습니다.Appdomain은 IronPython을 샌드 박스로 변환하는 유일한 방법입니까?

내가 원래 포스터에서 다소 다른 요구 사항이 있습니다 특히, 우리가 제한 될 다른 기능을 필요

을 - 파일 시스템 액세스 괜찮 표준 파이썬 모듈의 대부분은 좋아하지만, 몇 명시. NET dll은 허용됩니다 (우리는 Python 스크립트를 우리가 제공하는 "공식"API로 제한하려고합니다). AFAIC은 python import 문을 구현해야합니다.

이 작업을 수행하는 방법은 무엇입니까?

미리 감사드립니다.

답변

4

예, AppDomains가 유일한 방법입니다. .NET 샌드 박스를 통해 액세스를 제한하면 표준 라이브러리를 사용하여 수행 할 수있는 모든 작업이 적절하게 제한됩니다. 그렇다면 왜 파이썬 스크립트를 제한해야합니까? 그들은 당신이 달리 허용하지 않은 것을 할 수 없습니다.

1

다른 사람들이 내가 한 것처럼 많은 시간을 낭비하지 않도록이 글을 게시하고 있습니다.

"이 생식 샘플의에, SecurityException가 IronPython의의 보안 투명 코드 때문에 발생되는 : 당신이 os.py 사용하려고하면 어떻게되는지에 대한 응답으로 CLR 보안 팀의 수석 개발자에서

보안 중요 코드 (GCHandle.Free)를 호출하고 있으며 이로 인해 제한되지 않은 사용 권한이 필요합니다. "

그것은 그것에게가 필요한 권한을 부여 할 수 없습니다 :

당신이 일을 얻을 수있는 경우에도 "PermissionState.Unrestricted까지 추가 권한 정해진이 없다"를, AppDomain 샌드 박싱은 가치가 없습니다.

"신뢰할 수없는 코드를 샌드 박싱하는 것과 관련하여 곧 부분적 신뢰를 보안 경계로 사용해서는 안된다는 새로운 지침을 발표 할 것입니다. 전체 지침은입니다.".NET Framework는 CAS (코드 액세스 보안)라는 동일한 응용 프로그램에서 실행되는 다른 코드에서 다양한 수준의 신뢰를 적용하는 메커니즘을 제공합니다. .NET Framework의 코드 액세스 보안은 부분적으로 신뢰할 수있는 코드, 특히 알 수없는 코드와의 보안 경계로 사용하면 안됩니다. 대체 보안 조치를 취하지 않고도 알려지지 않은 원본 코드를로드하고 실행하는 것이 좋습니다. "

관련 문제