मैं असुरक्षित रूबी कोड चलाने में सक्षम होना चाहता हूं। मैं अविश्वसनीय कोड कहने के लिए चर को पारित करने में सक्षम होना चाहता हूं जो इसका उपयोग कर सकता है। मैं कोड को भी परिणाम देने के लिए कहा चाहता हूं। यहाँ मैं क्याएक सुरक्षित सैंडबॉक्स के अंदर अविश्वसनीय रूबी कोड कैसे चलाएं?
input = "sweet"
output = nil
Thread.start {
$SAFE = 4
#... untrusted code goes here, it uses the input variable(s)
#to calculate some result that it places in the output variable
}
#parse the output variable as a string.
सोच रहा हूँ बस स्पष्ट करने के लिए, मैं मूल रूप से एक समारोह के रूप अविश्वस्त कोड का उपयोग कर रहा की एक वैचारिक उदाहरण है। मैं अपने कुछ इनपुट प्रदान करना चाहता हूं, और उसके बाद आउटपुट को लिखने की अनुमति देता हूं। यह सब मैं वास्तव में चाहता हूं, मुझे परवाह नहीं है कि यह कैसे किया जाता है, मैं सिर्फ एक प्रकार के फ़ंक्शन के रूप में अविश्वसनीय रूबी कोड का उपयोग करने की क्षमता चाहता हूं। समाधान को ऊपर दिए गए कोड की तरह कुछ भी देखने की ज़रूरत नहीं है, मैं बस इसका उपयोग करने के लिए इसका उपयोग कर रहा हूं।
- ऊपर $ सुरक्षित स्तर निर्माण का उपयोग करें:
अब, मैं वर्तमान में यह करने के लिए 3 तरीके के बारे में सोच सकते हैं।
- व्हाटेलकीस्टिफ़ में रूबी
- के लिए एक सैंडबॉक्स प्लगइन है, मैं प्रत्येक फंक्शन को अपनी वर्चुअल मशीन में चला सकता हूं, कुछ प्रकार के ओएस वर्चुअलाइजेशन सॉफ़्टवेयर जैसे वीएमवेयर या ज़ेन या कुछ का उपयोग कर।
मुझे आश्चर्य है कि किसी को किसी कार्यात्मक तरीके से अविश्वसनीय रूबी कोड चलाने के लिए कोई अनुशंसा है? आप किस विकल्प की सिफारिश करेंगे? आप इसके बारे में कैसे जाएंगे? धन्यवाद।
क्या किसी के पास कोई संदर्भ है जो बताता है कि $ SAFE के साथ क्या गलत है? – sheldonh