दुर्भावनापूर्ण गतिविधि से अपने सर्वर की रक्षा कैसे जब अविश्वस्त कोड को स्वीकार करने और अपलोड क्रियान्वित कर सकते हैं से सर्वर को सुरक्षित करने के?सैंडबॉक्स JVM अविश्वस्त स्रोतों
उपयोगकर्ता मेरे इंटरफ़ेस को लागू करने और डेटा देने, कुछ गणना करने और डेटा वापस करने में सक्षम होना चाहिए। कोई I/O संचालन आवश्यक नहीं है और निश्चित रूप से कोई थ्रेड/प्रक्रिया हेरफेर या अन्य टमफूलरी नहीं है।
java.policy फ़ाइल का उपयोग करना सब कुछ अस्वीकार करना संभव है (कुछ भी नहीं देकर)।
$ cat test.policy
grant {
};
इस नीति फ़ाइल का उपयोग करके, संचालन न किए गए संचालन सुरक्षा अपवाद का कारण बनेंगे।
$ cat Print.java
public class Print {
public static void main(String a[]) throws Exception {
System.out.println(System.getProperty("os.name"));
}
}
$ javac Print.java
$ java -Djava.security.manager -Djava.security.policy==test.policy Print
Exception in thread "main" java.security.AccessControlException:
access denied (java.util.PropertyPermission os.name read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1285)
at java.lang.System.getProperty(System.java:650)
at Print.main(Print.java:3)
क्या यह मूर्खतापूर्ण है? क्या मुझे अविश्वसनीय स्रोतों से अपने सर्वर पर्यावरण को सुरक्षित करने के लिए और कुछ करने की आवश्यकता है?
अच्छा लगता है। लिनक्स वीएम में गैर-विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में भी निष्पादित किए जाने पर कैसे? – Synesso
मेरे लिए अच्छा लगता है, लेकिन मैं इसके बारे में ज्यादा अधिकार के साथ बात नहीं कर सकता। मुझे पता है कि पूरी दुनिया के खिलाफ जब अकेले जेवीएम सुरक्षा नाजुक है। –