순수 Python에서 Python 샌드박싱은 악의적인 사용자를 방지하기 위해 호스트 환경에서 Python 코드를 격리해야 하기 때문에 고유한 과제를 제기합니다. 시스템을 손상시키지 않도록 합니다. 이 문제에 대한 두 가지 기본 접근 방식을 살펴보고 안전한 스크립팅 환경을 만들기 위한 적합한 대안을 식별해 보겠습니다.
Messa는 전역에 대한 액세스가 제한된 제한된 실행 환경을 만들 것을 제안합니다. . 이 방법은 겉보기에는 보호 기능을 제공하지만 코드가 샌드박스를 벗어날 수 있게 하는 악용에 취약합니다. 악의적인 사용자는 예외를 악용하거나 내부 상태를 조작하거나 바이트코드 조작을 활용하여 샌드박스를 벗어날 수 있습니다.
이 접근 방식에는 Python 코드를 구문 분석하고 선택적으로 제거하는 작업이 포함됩니다. ast 모듈을 사용하여 원치 않는 구성. import 문, 함수 호출 및 기타 잠재적인 보안 위험을 제거함으로써 특정 요구 사항에 맞는 안전한 실행 환경을 구축할 수 있습니다.
Pythonic 스크립팅 구문이 꼭 필요한 경우에는 변수, 조건 및 함수 호출 기준을 충족하는 순수 Python으로 작성된 다른 오픈 소스 스크립트 해석기를 사용하는 것이 좋습니다. 이러한 인터프리터는 웹 게임에 더욱 강력하고 안전한 기반을 제공할 수 있습니다.
Google App Engine(GAE)을 사용하지 않는 사용자를 위해 PyPy 샌드박스는 다음을 제공합니다. 보도에 따르면 "진짜" 샌드박싱 솔루션입니다. 샌드박스 이스케이프 방지 효과를 입증한 사용자들로부터 그 기능을 높이 평가했습니다.
귀하의 요구 사항에는 변수, 기본 조건 및 함수 호출(정의 제외)에 대한 지원이 구체적으로 언급되어 있습니다. ). 코드 구문 분석 및 AST 조작이 포함된 접근 방식 2는 평가할 수 있는 실행 가능한 옵션처럼 보입니다. 사용자 정의가 가능하고 불필요한 구성을 효과적으로 제거할 수 있습니다.
순수 Python에서 Python 샌드박싱은 실행 환경과 코드 구문 분석 기술을 신중하게 고려하여 달성할 수 있습니다. 모든 기능을 갖춘 스크립팅 언어는 게임에 과잉일 수 있지만 여기에 제시된 대안은 유연성과 보안의 균형을 제공합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3