2011-08-20 58 views
0

您可以隨時查看某種方法調用的安全檢查。 我知道它是如何工作的,但我不知道檢查它們的原因。或者說最適合使用它們的用例?我很驚訝在JDK源代碼中找到它們的頻率很高,但很難知道其目的。你們有沒有在工作中使用它們?在哪些情況下?使用java.lang.SecurityManager的最適合的用例?

我需要在這裏添加一個常量。文件許可非常簡單。我的意思是那些函數調用權限檢查。什麼樣的函數調用被認爲是危險的,應該使用安全管理器進行檢查?

例如,

jaav.security.Policy

private static void checkPermission(String type) { 
    SecurityManager sm = System.getSecurityManager(); 
    if (sm != null) { 
     sm.checkPermission(new SecurityPermission("createPolicy." + type)); 
    } 
} 

回答

2

,以防止他們是討厭有些Java應用程序在沙盒環境中運行的程序(applets,Webstart的應用等)(例如,在一些隨機的HTML頁面中執行一個applet應該不能夠訪問文件系統並閱讀所有個人數據)。這些檢查構成沙箱。

有些方法可以啓用某些受限制的操作(通過簽署瓶子並請求最終用戶的批准)。

安全管理器處理什麼是允許的,哪些不是。閱讀http://download.oracle.com/javase/6/docs/technotes/guides/security/permissions.html。它列出了所有許可證,並描述了允許它們遇到的風險。

+1

是的。文件讀取權限更易於理解。但是像createPolicy或find classloader這樣的方法很難理解。 –

+0

+1您的答案基本正確。 createPolicy是危險的。如何解釋getClassLoader。但我希望看到除文件權限外的更多用例 –

+2

請閱讀http://download.oracle.com/javase/6/docs/technotes/guides/security/permissions.html。它列出了所有許可證,並描述了允許它們遇到的風險。 –