2010-07-16 12 views
8

मैं डायनेमिक लैंग्वेज रनटाइम (डीएलआर) को इस तरह से होस्ट करना चाहता हूं कि उपयोगकर्ता जो मनमाने ढंग से स्क्रिप्ट चलाते हैं, वे प्रक्रिया को नीचे नहीं ला सकते हैं?क्या "बेवकूफ-सबूत" सैंडबॉक्स में .NET DLR होस्ट करना संभव है?

DLR hosting spec वर्णन करता है कि डीएलआर को एक अलग एप्लिकेशनडोमेन में कैसे होस्ट किया जाए। यह एक स्क्रिप्ट रनटाइम को फाड़ने और अनलोड करने और सीएएस के माध्यम से कुछ परिचालनों को प्रतिबंधित करने की अनुमति देता है (उदाहरण के लिए मैं फ़ाइल सिस्टम का उपयोग प्रतिबंधित कर सकता हूं या प्रतिबिंब के उपयोग को अस्वीकार कर सकता हूं)।

लेकिन उदाहरण के लिए भी तरीके हैं: - एक स्क्रिप्ट द्वारा उपयोग की जाने वाली अधिकतम मात्रा को सीमित करें? - एक स्क्रिप्ट द्वारा बनाए गए धागे की संख्या को सीमित करें? - डेडलॉक स्क्रिप्ट का पता लगाएं?

मुझे लगता है कि unmanaged .net hosting API का उपयोग करके ऐसा अच्छा दाग नियंत्रण संभव हो सकता है जो SQL सर्वर के लिए विकसित किया गया था। क्या यह दिशा जाने की दिशा है? क्या इस तरह के सामान्य .NET सैंडबॉक्सिंग के लिए ओपन सोर्स प्रोजेक्ट हैं?

उत्तर

3

एक नज़र:

यहाँ कुछ संभावित रूप से उपयोगी संदर्भ है कि मैं पाए जाते हैं Terrarium पर - यह एक ऐसा गेम है जहां आप अपने स्वयं के स्वायत्त क्रिटर्स को .NET भाषा में बनाते हैं, और उन्हें टेलीपोर्ट किया जाता है आर नेटवर्किंग कंप्यूटरों के साथ-साथ उन विधानसभाओं के साथ-साथ उनका वर्णन किया गया है। लक्ष्य यह है कि आपका क्रिटर पूरे पारिस्थितिक तंत्र पर ले जाए, या तो बाकी सब कुछ मारकर या सामरिक रूप से खाद्य संसाधनों का प्रबंधन करके।

जैसा कि मुझे याद है, कोई भी क्रेटर जो 0.n सेकंड से अधिक "सोच" या स्मृति के एन केबी को छोड़ देता है हटा दिया जाता है।

+0

बहुत ही रोचक परियोजना। :-) मैंने अभी स्रोत डाउनलोड किया है और एक बहुत ही त्वरित समीक्षा की है: वे मूल रूप से 'प्राणी असेंबली' को अलग करने के लिए "एस्केक" नामक देशी कोड सी ++ प्रोजेक्ट का उपयोग करते हैं और यह जांचते हैं कि कौन से .NET प्रकार इसका उपयोग/एक्सेस कर रहे हैं। वे सिस्टम जैसे "प्रतिबंधित प्रकार" के लिए हार्ड-कोडित ब्लैक लिस्ट का उपयोग करते हैं। थ्रेडिंग। थ्रेड। हालांकि यह एक बहुत ही रोचक समाधान है, मुझे लगता है कि यह दृष्टिकोण सीधे डीएलआर पर लागू नहीं किया जा सकता है। – blueling

+0

वास्तव में? यह आश्चर्यजनक है। मैंने हमेशा सोचा कि वे सीएएस का उपयोग करते हैं: http://en.wikipedia.org/wiki/Code_Access_Security –

संबंधित मुद्दे