2010-02-18 13 views
5

मैं कैसे मैं एक पटकथा भाषा इस्तेमाल कर सकते हैं एक sandboxed ढंग से कोड के साधारण ब्लॉक्स पर अमल करने में दिलचस्पी रखता हूँ। मेजबान भाषा/पर्यावरण सी #/रूबी/पायथन/जावा (कुछ भी सी) हो सकता है। लेकिन स्क्रिप्टिंग भाषा समान रूप से जावास्क्रिप्ट/पायथन/रूबी/पर्ल इत्यादि जैसी अस्पष्ट हो सकती है।Sandboxed पटकथा

मैं क्या चाहता हूं पारंपरिक प्रोग्रामिंग संरचनाओं यानी सशर्त/लूप/डेट मैनिपुलेशन/सरणी आदि के साथ स्क्रिप्ट निष्पादित करने का एक तरीका है लेकिन क्या मैं नहीं चाहता कि आईओ, एचटीएमएल स्ट्रीम, डाटाबेस इत्यादि से कनेक्टिविटी आदि का खुलासा करना है।

मैं वर्तमान में पाइथन एडाप्टर का उपयोग कर स्पाइडरमॉन्की देख रहा हूं, लेकिन मुझे आश्चर्य हुआ कि क्या अन्य विकल्प हैं जिन पर मुझे विचार करना चाहिए।

उत्तर

1

आप इसे Code Access Security के माध्यम से .NET (VB, C#, किसी भी भाषा) के साथ कर सकते हैं - मशीन पर नीति सेट करें ताकि आप चाहें कि किसी भी फ्रेमवर्क कक्षाओं तक पहुंच की अनुमति न दें।

Setting Security Policy देखें।

नीति डिफ़ॉल्ट रूप से कोड है कि कुछ भी करने को स्थानीय मशीन पर जन्म लिया अनुमति देता है; आप इसे सेट कर सकते हैं ताकि डिफ़ॉल्ट रूप से, कोड I/O कक्षाओं में कॉल नहीं कर सकता है, HTTP कनेक्शन नहीं कर सकता है, और इसी तरह।

+1

इस टिप्पणी की पीठ पर मैं बू पर तलाश शुरू कर दी मैं एक विस्तृत भाषा के साथ ही कुछ अच्छा गतिशीलता चाहता था। मुझे अचानक एहसास हुआ कि सीएलआर एक महान मंच है, और मुझे विश्वास है कि एक दिन सी # डायनासोर की तरह एक जावा होगा लेकिन सीएलआर काफी समय तक जी रहेगा। – Owen

2

लुआ में सैंडबॉक्स कोड के लिए बहुत आसान है। यहाँ Lua wiki पर एक संदर्भ है। यह एक भयानक minimalist स्क्रिप्टिंग भाषा है, जो अन्य (सी या सी ++) कोड में एम्बेड करना आसान है। तो आपका होस्ट लूआ कुछ अन्य कोड (या सिर्फ कारखाने से स्थापित लुआ दुभाषिया) में एम्बेडेड होगा। आपकी स्क्रिप्टिंग भाषा लुआ होगी।

आप इसे नहीं जानते हैं, हालांकि, मुझे यकीन है कि अन्य अच्छे समाधान है कि आप एक नई भाषा सीखने की आवश्यकता नहीं है देखते हैं हूँ।

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