原則1:不要依賴初始化。
在Java中,開發人員通常依靠構造函數來初始化對象。但這其實是壹個普遍的誤解。我們可以用很多方法實現對象分配,而不需要調用構造函數。
讓我們來看看幾種常見的方式:
您可以將所有變量聲明為私有變量。若要訪問該類之外的對象,可以使用GET和SET方法。
對於每個對象,編寫壹個新的私有布爾變量並初始化它。
編寫壹個非構造函數類,確保在接受調用之前初始化每個對象。
原則2:保護類、方法和變量。
在代碼中,類、方法和變量分為私有和公共。私有類不容易被訪問,這使它們成為代碼中的高安全性點。而公共方法和變量比較好用,所以往往會成為突破口。因此,請盡可能限制其範圍。
記住只在必要的時候打開類、方法和變量。
原則3:總是預先定義範圍。
大多數開發人員完全依賴軟件包本身的範圍設置。事實上,我們應該堅持預先定義代碼範圍。很多類本身並不是完全封閉的,這意味著攻擊者可以攻擊它們。黑客可以利用壹個漏洞插入自己的類,然後從代碼中提取敏感信息。JVM在默認情況下是不關閉的,但是在這個包中允許類關閉。
原則4:避免使用內部類。
壹般來說,當同壹個包中的其他類需要時,開發人員會使用內部類。這些內部類通常可以被同壹個包中的所有類訪問,它們可能產生的問題已經在預定義代碼範圍壹節中提到。因此,也請僅在必要時使用內部類。
原則5:確保類是不可克隆的。
Java提供了在需要時克隆自己的類的功能。但是,這個函數經常被黑客使用,他們可以使用java.lang.Cloneable從代碼中復制代碼實例,竊取必要的信息。