आप "सैंडबॉक्स्ड पायथन" (Sandboxed Python) का उपयोग कर सकते हैं। एक "सैंडबॉक्स्ड पायथन" आपको मॉड्यूल को अनुमति या निषेध करने, निष्पादन स्लाइस सीमित करने, नेटवर्क ट्रैफिक अनुमति/अस्वीकार करने, फाइलसिस्टम एक्सेस को एक विशेष डायरेक्टरी तक सीमित करने (जिसे "/" के रूप में फ्लोट किया जाता है), और इसी तरह की सुविधाएं देता है। इसे प्रतिबंधित निष्पादन (RestrictedExecution) भी कहा जाता है।
सैंडबॉक्सिंग के कार्यान्वयन के तरीके
पायथन पर सैंडबॉक्सिंग लागू करने के कई तरीके हैं:
- CPython रनटाइम संशोधित करें
- अन्य रनटाइम उपयोग करें
- ऑपरेटिंग सिस्टम सपोर्ट उपयोग करें
सैंडबॉक्सिंग के बारे में अधिक पढ़ें: https://wiki.python.org/moin/SandboxedPython
RestrictedPython पैकेज
PyPI पर RestrictedPython नामक एक पैकेज है (https://pypi.python.org/pypi/RestrictedPython) जो पायथन भाषा का एक परिभाषित सबसेट है जो एक विश्वसनीय वातावरण में प्रोग्राम इनपुट प्रदान करने की अनुमति देता है।
महत्वपूर्ण: RestrictedPython एक सैंडबॉक्स सिस्टम या सुरक्षित वातावरण नहीं है, लेकिन यह एक विश्वसनीय वातावरण को परिभाषित करने और उसके अंदर अविश्वसनीय कोड निष्पादित करने में मदद करता है।
अन्य विकल्प
PyPyसैंडबॉक्स - अधिक सुरक्षितDockerकंटेनर - OS-स्तरीय आइसोलेशनsubprocessसीमित अधिकारों के साथseccomp/namespaces(लिनक्स)
चेतावनी
पायथन सैंडबॉक्सिंग कुख्यात रूप से कठिन है। सुरक्षा-महत्वपूर्ण अनुप्रयोगों के लिए, OS-स्तरीय आइसोलेशन (कंटेनर, VMs) प्राथमिकता दें।