国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JDBC編程基礎第二部分

2019-11-18 12:39:59
字體:
來源:轉載
供稿:網友

  5.2. JDBC 和java應用程序
  
  對于一個普通的Java應用程序(例如全部用Java代碼而不是不可靠的applet )JDBC將從本地的類路
  徑里面獲得驅動,并且答應應用程序自由存取文件,遠程服務器等等。但是和applet一樣,假如由于
  某些原因一個沒有驗證的sun.sql.Driver類從遠程的來源里面獲得,那么這個驅動只能和相同地方
  來的代碼配合。
  
  5.3. Driver的安全責任
  
  JDBC driver可能在各種情況下使用,所以驅動的編制者遵循一定的簡單的安全規則,從而避免
  applet做非法的數據庫連接。假如所有的驅動都象applet一樣從網上下載,那么這些原則將是
  不必要的,因為普通的安全規則已經對它做了限制。但是驅動的編寫者必須記住一旦他們的驅動
  獲得成功,用戶將在本地磁盤安裝這些驅動,那么驅動將成為Java環境中一個被信任的部分,所以
  必須確信它不會被來訪的applet所濫用。所以我們鼓勵所有的驅動編寫者必須遵循一定安全原則。
  所有這些原則都是在連接打開的時候使用。這正式驅動和虛擬機器檢查當前調用者是否真的可以與
  指定的數據庫連接的時刻。一旦連接建立就不必做更多的檢查了。
  
  5.3.1. 分享TCP/ip連接的時候必須謹慎
  
  假如一個JDBC驅動試圖打開一個 TCP 連接,那么這個打開會被Java 安全治理機制自動檢查。
  這個機構會檢查當前調用棧里面有沒有applet,假如有那么就限定它可以訪問的機器集合。所
  以一般地JDBC驅動可以把TCP建立檢查留給Java虛擬機。但是假如一個JDBC驅動試圖在多個數據庫
  連接之間共享一個TCP連接,那么驅動就必須自己負責檢查每個調用者是否真的被答應與目標數據庫
  聯系。例如假如我們為applet A打開了一個通往機器foobah 的TCP連接,這并不意味著applet B
  被自動答應來共享這個連接。applet B可能沒有任何訪問機器foobah的權力。所以在答應某個程序
  重用一個現成的TCP連接之前,JDBC 驅動必須通過安全機構來檢查當前的的調用者是否可以訪問這
  個連接。通過下面的代碼可是實現這個功能。
  
  SecurityManager security = System.getSecurityManager();
  if (security != null)
  {
  security.checkConnect(hostName, portNumber);
  }
  
  假如連接是不答應的,那么Security.checkConnect方法將產生一
  個java.lang.SecurityException。
  
  5.3.2. 檢查所有的本地文件訪問
  
  假如一個JDBC取得需要訪問本地機器上的數據,那么他必須確
  信調用者是被答應打開這個文件的。例如:
  SecurityManager security = System.getSecurityManager();
  if (security != null)
  {
  security.checkRead(fileName);
  }
  假如對特定文件的訪問是不答應的,那么Security.checkRead方
  法將產生一個java.lang.SecurityException。
  
  5.3.3. 作好最壞的預備
  
  一些驅動可能使用本地的方法來橋接底層數據庫程序。則這些
  情況里面判定那些本地文件將被底層函數所訪問是困難的。
  在這些環境里面用戶必須作好最壞的打算,并且否決所有下載
  applet所發出的數據庫存取,除非驅動可能完全確信將要做存取
  是沒有問題的。
  例如一個JDBC-ODBC橋接器必須檢查ODBC數據源的的名
  稱,確保applet只可以訪問它的“生源地”。假如對有的名字中
  不能判定出數據源的主機名,那么只能否決這個訪問。
  為了決定一個當前的調用者是可以信賴的應用還是一個
  applet,JDBC驅動必須能夠檢查這個調用者是否可以寫一個隨
  機的文件:
  SecurityManager security = System.getSecurityManager();
  if (security != null)
  {
  security.checkWrite("foobaz");
  I. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 徐州市| 滦平县| 江孜县| 江山市| 九江县| 涿州市| 行唐县| 宁乡县| 凤阳县| 米脂县| 信阳市| 沙坪坝区| 舒兰市| 荆州市| 三亚市| 海阳市| 江口县| 甘孜县| 大足县| 绍兴县| 杂多县| 台南市| 濮阳市| 密山市| 和硕县| 荃湾区| 偃师市| 楚雄市| 通辽市| 福安市| 炉霍县| 沁阳市| 阿荣旗| 夏河县| 怀柔区| 孟连| 搜索| 景德镇市| 策勒县| 池州市| 柳州市|