2016-09-13 2 views
-1

exec 함수를 사용하여 코드 문자열을 실행하는 python 스크립트가 있습니다. 스크립트의 현재 읽기/쓰기 액세스를 제한하는 방법이 필요합니다. 이것을 어떻게 할 수 있습니까?python exec acess를 하나의 디렉토리로 제한

또는 파이썬 스크립트의 환경을 명령 줄을 통해 직접 제한하여 인터프리터를 실행할 때 디렉토리에서 쓸 수 없도록하는 방법이 있습니까? virtualenv를 사용하여 그렇게 할 수 있습니까? 방법?

기본적으로 내 앱은 사람들이 파이썬 앱을 작성하고 실행하여 응답을받을 수있는 웹 포털입니다. 그리고 저는 이것을 heroku에서 호스팅했습니다. 이제는 여러 폴더가있는 여러 사용자가있을 수 있으며 사용자는 다른 사용자의 폴더 또는 시스템 파일 및 폴더에 대한 액세스 권한이 없어야합니다. 사용 권한은 로컬 사용자가 아닌 nodejs 앱 (웹 앱)에서 사용자가 결정해야합니다. 어떻게해야합니까?

+0

파이썬에서 파일에 접근하는 데는 여러 가지 방법이 있습니다. 모든 것을 잠그는 것은 비현실적입니다. 방법이 있더라도 Python 자체에서 악용 될 가능성이 있습니다. 정말로 파이썬을 파이썬 외부에서 제한을 제공하는 환경에서 실행해야 할 필요가 있습니다. –

+0

그러면 어떻게 제한된 환경에서 파이썬 자체를 실행할 수 있습니까? 파이썬 virtualenv의 액세스를 제한 할 수 있습니까? –

+0

내가 알았다면 나는 대답 대신 답을 남겼을 것이다. –

답변

2

그 특정 디렉토리를 소유하고 다른 곳에서는 권한이없는 사용자로 코드를 실행 하시겠습니까?

그러나 코드 소스를 완전히 신뢰하지 않으면 어떤 상황에서도 exec을 사용하지 않아야합니다. 파이썬 솔루션이 떠 올랐다는 것을 기억하십시오 ... exec 코드는 악의적 인 행위를하기 전에 문자 그대로 명령을 취소 할 수 있습니다. 해결하려는 문제를 Google에 알려 주면 더 좋은 아이디어를 찾을 수 있습니다.

+2

답변에 더 추가하려면 [XY 문제] (http://meta.stackexchange.com/a/66378)처럼 들립니다. –

+0

안녕하세요, 빠른 답변을 보내 주셔서 감사합니다. 기본적으로 내 앱은 사람들이 파이썬 앱을 작성하고 실행하고 응답을받을 수있는 웹 포털입니다. 그리고 저는 이것을 heroku에서 호스팅했습니다. 이제는 여러 폴더가있는 여러 사용자가있을 수 있으며 사용자는 다른 사용자의 폴더 또는 시스템 파일 및 폴더에 대한 액세스 권한이 없어야합니다. 어떻게해야합니까? –

+0

@VinitJogani 당신은 잘못된 길로 가고 있습니다. 사용자가 임의의 Python 코드를 실행하도록 허용하지 마십시오. 대신 마이크로 서비스로 설정하십시오. –

2

질문의 답은 다음과 같습니다. 신뢰할 수없는 코드를 어떻게 안전하게 실행할 수 있습니까?
할 수 없습니다.
코드가하는 일을 알고 있거나 실행하지 않습니다.
프로세스와 분리 된 환경 (예 : 도커)을 사용할 수 있습니다. 그러나 유스 케이스는 안전하지 않은 코드를 실행하는 것과는 거리가 멀다.

관련 문제