나는 내부에 신뢰할 수없는 WSGI-apps가있는 python-projects가있다. 나는 그들을 simlatiously 안전하게 실행해야합니다. 그래서 디렉토리 접근, 파이썬 모듈 사용 및 CPU와 메모리에 대한 제한에 대한 제한이 필요합니다.파이썬 코드 jailing
나는 두 가지 방법을 고려 : 정의 파일의 꼬마 도깨비 모듈 WSGI 객체를 통해
가져 오기를, 그리고 pysandbox으로 실행. 할 때 지금은
SandboxError: Read only object
있습니다self.config = SandboxConfig('stdout') self.sandbox = Sandbox(self.config) self.s = imp.get_suffixes() wsgi_obj = imp.load_module("run", open(path+"/run.py", "r"), path, self.s[2]).app … return self.sandbox.call(wsgi_obj, environ, start_response)
수정 파이썬 인터프리터, ZMQ/유닉스 소켓을 통해 통신, 병렬 프로세스로 실행 잠재적으로 위험한 모듈을 제외 할 수 있습니다. 심지어 여기서부터 시작해야할지 모르겠다.
추천 하시겠습니까?
프로세스 분리가 좋은 아이디어입니다. 더 나은 가상화를 사용하는 것입니다. pysandbox에 대해서는 잘 모릅니다. 그러나 파이썬 코드를 샌드 박싱하는 기존 솔루션이 그리 좋지 않다고 들었습니다. –
CPython의 샌드 박싱은 좋지 않지만 다른 Python 인터프리터, 특히 PyPy는 더 완벽한 샌드 박스 지원 기능을 제공합니다. –
나는 PyPy 샌드 박싱을 시도했다. 너무 복잡합니다. – sashab