<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    sharky的點滴積累

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      56 隨筆 :: 104 文章 :: 10 評論 :: 0 Trackbacks
    5. 安全性考慮
      
      作為網(wǎng)絡上的語言JAVA必須十分注安全性的考慮。基于上面的討論,JDBC的兩種主要使用場合里面,我們必須考慮安全性問題:
      
      * 在Java applications的場合里面Java代碼是本地的,所以也是"trusted"
      
      * 沒有驗證的Java applet代碼不可以存取本地的以及其他網(wǎng)絡的數(shù)據(jù)。
      
      5. 1. JDBC 和未驗證的applet
      
      JDBC首先必須符合JAVA的一般安全規(guī)則。另外:
      
      * JDBC 必須認為沒有驗證的applets是不可靠的。
      
      * JDBC 不可以讓不可靠的applets存取本地數(shù)據(jù)庫。
      
      * 一個已經(jīng)向JDBC DriverManager注冊的是JDBC Driver只能存取它所來的數(shù)據(jù)源。
      
      * 一個applet也只能向它所Download來的服務器來存取數(shù)據(jù)。
      
      如果JDBC驅(qū)動層如果完全確信對一個數(shù)據(jù)庫服務器打開連接不會引起認證或者權限問題(可能由網(wǎng)上隨機主機上運行的程序引起),那么它就允許applet打開這樣的連接。
      
      數(shù)據(jù)庫服務器不通過IP地址來限制存取是相當少的,主要是為了舉例。(當心,這一段話我可能翻譯反了!!!大家看看原文。)這些限制是相當煩瑣的。不過他們與對一般applet的限制是一致的我們沒有必要放開這些限制。
      
      5. 2. JDBC 和Java應用程序
      
      對于一個普通的Java應用程序(例如全部用Java代碼而不是不可靠的applet )JDBC將從本地的類路徑里面獲得驅(qū)動,并且允許應用程序自由存取文件,遠程服務器等等。
      
      但是和applet一樣,如果由于某些原因一個沒有驗證的sun.sql.Driver類從遠程的來源里面獲得,那么這個驅(qū)動只能和相同地方來的代碼配合。
      
      5. 3. Driver的安全責任
      
      JDBC driver可能在各種情況下使用,所以驅(qū)動的編制者遵循一定的簡單的安全規(guī)則,從而避免applet做非法的數(shù)據(jù)庫連接。
      
      如果所有的驅(qū)動都象applet一樣從網(wǎng)上下載,那么這些原則將是不必要的,因為普通的安全規(guī)則已經(jīng)對它做了限制。
      
      但是驅(qū)動的編寫者必須記住一旦他們的驅(qū)動獲得成功,用戶將在本地磁盤安裝這些驅(qū)動,那么驅(qū)動將成為Java環(huán)境中一個被信任的部分,所以必須確信它不會被來訪的applet所濫用。所以我們鼓勵所有的驅(qū)動編寫者必須遵循一定安全原則。
      
      所有這些原則都是在連接打開的時候使用。這正式驅(qū)動和虛擬機器檢查當前調(diào)用者是否真的可以與指定的數(shù)據(jù)庫連接的時刻。一旦連接建立就不必做更多的檢查了。
      
      5. 3. 1. 分享TCP/IP連接的時候必須謹慎
      
      如果一個JDBC驅(qū)動試圖打開一個 TCP 連接,那么這個打開會被Java 安全管理機制自動檢查。這個機構會檢查當前調(diào)用棧里面有沒有applet,如果有那么就限定它可以訪問的機器集合。所以一般地JDBC驅(qū)動可以把TCP建立檢查留給Java虛擬機。
      
      但是如果一個JDBC驅(qū)動試圖在多個數(shù)據(jù)庫連接之間共享一個TCP連接,那么驅(qū)動就必須自己負責檢查每個調(diào)用者是否真的被允許與目標數(shù)據(jù)庫聯(lián)系。
      
      例如如果我們?yōu)閍pplet A打開了一個通往機器foobah 的TCP連接,這并不意味著applet B被自動允許來共享這個連接。
      
      applet B可能沒有任何訪問機器foobah的權力。所以在允許某個程序重用一個現(xiàn)成的TCP連接之前,JDBC 驅(qū)動必須通過安全機構來檢查當前的的調(diào)用者是否可以訪問這個連接。通過下面的代碼可是實現(xiàn)這個功能。
      
      SecurityManager security = System.getSecurityManager();
      
      if (security != null)
      
      {
      
      security.checkConnect(hostName, portNumber);
      
      }
      
      如果連接是不允許的,那么Security.checkConnect方法將產(chǎn)生一個java.lang.SecurityException。
      
      5. 3. 2. 檢查所有的本地文件訪問。
      
      如果一個JDBC取得需要訪問本地機器上的數(shù)據(jù),那么他必須確信調(diào)用者是被允許打開這個文件的。例如:
      
      SecurityManager security = System.getSecurityManager();
      
      if (security != null)
      
      {
      
      security.checkRead(fileName);
      
      }
      
      如果對特定文件的訪問是不允許的,那么Security.checkRead方法將產(chǎn)生一個java.lang.SecurityException。
      
      5. 3. 3. 作好最壞的準備
      
      一些驅(qū)動可能使用本地的方法來橋接底層數(shù)據(jù)庫程序。則這些情況里面判斷那些本地文件將被底層函數(shù)所訪問是困難的。
      
      在這些環(huán)境里面用戶必須作好最壞的打算,并且否決所有下載applet所發(fā)出的數(shù)據(jù)庫存取,除非驅(qū)動可能完全確信將要做存取是沒有問題的。
      
      例如一個JDBC-ODBC橋接器必須檢查ODBC數(shù)據(jù)源的的名稱,確保applet只可以訪問它的"生源地"。如果對有的名字中不能判斷出數(shù)據(jù)源的主機名,那么只能否決這個訪問。
      
      為了決定一個當前的調(diào)用者是可以信賴的應用還是一個applet,JDBC驅(qū)動必須能夠檢查這個調(diào)用者是否可以寫一個隨機的文件:
      
      SecurityManager security = System.getSecurityManager();
      
      if (security != null)
      
      {
      
      security.checkWrite("foobaz");
      
      I. }
    posted on 2005-09-30 18:33 sharky的點滴積累 閱讀(104) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 国产黄色一级毛片亚洲黄片大全| 18女人毛片水真多免费| 久久精品国产这里是免费| 麻豆国产入口在线观看免费| 亚洲中文字幕久久精品无码喷水| 精品亚洲456在线播放| 免费的全黄一级录像带| 亚洲真人无码永久在线| 亚洲色图激情文学| 国产av无码专区亚洲国产精品| 中文字幕天天躁日日躁狠狠躁免费| 中文字幕精品亚洲无线码二区| 精品一区二区三区无码免费视频| 亚洲精品无AMM毛片| 91麻豆最新在线人成免费观看| 国产精品亚洲一区二区三区在线| 成人在线免费视频| 四虎永久在线精品免费观看地址 | 香蕉视频在线观看免费国产婷婷| 免费看成人AA片无码视频吃奶| 综合亚洲伊人午夜网| 91在线视频免费91| 亚洲色在线无码国产精品不卡 | 中文字幕亚洲一区二区三区| a级片免费在线播放| 亚洲精品无码久久久久去q| 在线免费不卡视频| 精品亚洲福利一区二区| 四虎永久免费影院| 手机看黄av免费网址| 亚洲精品自偷自拍无码| 又粗又大又长又爽免费视频| 精品国产呦系列在线观看免费 | 免费观看理论片毛片| 亚洲视频免费在线观看| 亚洲一级免费毛片| 日本a级片免费看| 黄色网址免费在线观看| 欧洲亚洲综合一区二区三区| 亚洲制服丝袜第一页| 国产在线不卡免费播放|