मैं एक साधारण ऑनलाइन सेवा है जहाँ लोगों को अपने सर्वर जहां यह तो व्याख्या की है/संकलित और मार डाला/परीक्षण किया करने के लिए स्रोत कोड, के रूप में उनके समाधान प्रस्तुत करने, द्वारा प्रोग्रामिंग अभ्यास हल कर सकते हैं निर्माण के बारे में सोच रहा हूँ।सर्वर पर बाहरी जावा स्रोत कोड निष्पादित करें - सुरक्षा और संसाधनों को सीमित करें?
जावा वी एम मैं का उपयोग कर बॉक्स से बाहर जावा, स्काला, Clojure, रूबी, पायथन और जावास्क्रिप्ट के लिए समर्थन की पेशकश कर सकता है के द्वारा। लेकिन जब मैं इसके बारे में विस्तार से सोचता हूं तो मुझे डर है कि मुझे नहीं पता कि स्क्रिप्ट के संसाधनों और अनुमतियों को कैसे सीमित किया जाए।
मेरा मतलब यह डिस्क के लिए करने के लिए
- लिखने सक्षम नहीं होना चाहिए
- एक्स धागे की तुलना में अधिक एक्स एमबी मेमोरी की तुलना में अधिक एक्स सेकंड से
- रन अधिक बनाने
- उपयोग
- निष्पादित बाहरी अनुप्रयोग
- आदि
मैं प्रत्येक स्क्रिप्ट को सैंडबॉक्स में कैसे रख सकता हूं?
मैं क्या पढ़ा है SecurityManager वह सब करने में सक्षम हो प्रतीत नहीं होता है से...
संभावित डुप्लिकेशंस: [जावा एप्लिकेशन में दुर्भावनापूर्ण कोड के विरुद्ध सैंडबॉक्स] (http://stackoverflow.com/questions/502218/sandbox-against-malicious-code-in-a-java- अनुप्रयोग) – edwardw
धन्यवाद टिप्पणी! वहां पर उत्तर वास्तव में अच्छे लगते हैं :) – stephanos
@stephanos: जावा पक्ष (सुरक्षा प्रबंधक आदि) पर क्या किया जा सकता है इसके अतिरिक्त, यदि आपका सर्वर एक अन * एक्स-जैसी प्रणाली है तो आप उपयोगकर्ता में जावा भी इंस्टॉल कर सकते हैं खाता (जड़ के बिना) और उस खाते पर कोटा डालें, यह सुनिश्चित करने के लिए कि यह बहुत अधिक संसाधनों का उपभोग नहीं करेगा। इसके अलावा, अगर यह मेरे लिए होता, तो मैं बस एक बेहतर सैंडबॉक्स का उपयोग करता हूं: मैं एक पूर्ण ओएस वर्चुअलाइज करता हूं और वर्चुअल मशीन के अंदर जेवीएम चलाता हूं। मेरे सर्वर (सर्वर) में हैकिंग करने का कोई खतरा नहीं है। निश्चित रूप से, इसके लिए थोड़ा और संसाधन की आवश्यकता है लेकिन हार्डवेयर वर्चुअलाइजेशन अब दोनों निष्पादक और सर्वव्यापी है। – TacticalCoder