System可以有對標(biāo)準(zhǔn)輸入,,標(biāo)準(zhǔn)輸出,,錯(cuò)誤輸出流;對外部定義的屬性和環(huán)境變量的訪問,;加載文件和庫的方法,;還有快速復(fù)制數(shù)組的一部分的實(shí)用方法。 System.getProperties()可以確定當(dāng)前的系統(tǒng)屬性,返回值是一個(gè)Properties; System.load(String filename)等同于:System.getProperties().load(String filename)它們的作用是可以從作為動(dòng)態(tài)庫德本地文件系統(tǒng)中指定的文件名加載代碼文件,。 System.setProperties(Properties propes):將系統(tǒng)屬性設(shè)置為Properties參數(shù),; System.setProperties(String key,String value)等同于System.getProperties().setProperties(String key,String value):設(shè)置指定鍵指示的系統(tǒng)屬性 對于在程序中如果我們想得到一個(gè)資源文件中對應(yīng)的鍵值對的內(nèi)容,可以有兩種方法: 1)使用Properties的load方法,,將這個(gè)文件先加載進(jìn)來,,之后使用getProperty方法將對應(yīng)鍵的值得到,比如: System.getProperties().load("System.Properties.txt");先加載System.Properties.txt文件 System.getProperties().getProperty("DBType");后將文件中鍵為DBType的值得到,。 2)使用第一種方法鍵對應(yīng)的值得靈活性比較大,。還有一種方法是將不從文件中得到鍵對應(yīng)的值。在程序中去設(shè)一個(gè)屬性,,比如: System.getProperties().setProperty("DBType","SQLServer");先設(shè)置一個(gè)鍵位DBType的屬性 System.getProperties().getProperty("DBType");后通過getProperty方法得到DBType的值,。
另外使用Properties.getProperty方法的參數(shù)也可以使用系統(tǒng)的一些環(huán)境變量,列表如下: Key Meaning ------------------- ------------------------------ "file.separator" File separator (e.g., "/") "java.class.path" Java classpath "java.class.version" Java class version number "java.home" Java installation directory "java.vendor" Java vendor-specific string
"java.vendor.url" Java vendor URL "java.version" Java version number "line.separator" Line separator "os.arch" Operating system architecture "os.name" Operating system name "path.separator" Path separator (e.g., ":") "user.dir" User's current working directory "user.home" User home directory "user.name" User account name 使用其中的key可以得到一些屬性,,供我們在程序中使用 備注: Microsoft VM是WIN32操作環(huán)境中的虛擬機(jī),,VM一般安裝在大多數(shù)操作系統(tǒng)下,也包含在多數(shù)IE中,。 Microsoft VM存在漏洞允許攻擊者對user.dir屬性進(jìn)行訪問,。user.dir屬性包含當(dāng)前應(yīng)用程序的工作目錄信息,也包含用戶名信息,,利用這個(gè)漏洞可以獲得當(dāng)前用戶名稱,。 可以利用WEB頁和HTML形式郵件來觸發(fā)。
|