什麼是安全?
安全是一種相對的度量,而不是絕對的標準。
不幸的是多數軟體專案將安全性列為一個簡單的需求。它安全嗎?這個問題的答案就像問某個東西是否是熱的一樣主觀。
達到安全的開銷應該是合理的。
對於多數應用來說達到足夠的安全等級是簡單且成本低廉的。但是,如果因為所需要保護的資訊非常有價值,或者對安全的要求非常苛刻,則需要付出更多的代價來提高安全等級。這個成本應該被包含在專案的預算中。
達到安全的易用性應該是合理的。
很常見的現像是大幅增加一個WEB應用的安全的同時,易用性也大大降低。密碼、SESSION過期時間,以及存取控制都會對合法使用者的使用造成障礙。有時為應用提供適當的安全性是非常必要的,但是對於所有的應用來說並不是只有這一種解決方案。當貫徹安全法則的時候對合法使用者更加留意是非常明智的。
安全必須是設計的一部分。
如果在設計應用的時候沒有考慮安全,命中註定將要堅持不懈的來尋找新的安全漏洞。仔細的寫程式並不能彌補糟糕的設計。
基本步驟在應用程式上多為合法使用者著想。
一個安全的設計只是解決方案的一部分。開發的時候,當編碼開始進行的時候,為應用程式中的那些合法使用者著想是必要的。一般,目標是使應用程式像預先制定的那樣工作,同時就有必要實現一個適當的應用功能,而這並沒有使得應用更加安全。
培訓自己。
能夠閱讀本指南的讀者說明本身關心安全,雖然聽起來像陳腔濫調,但這是非常關鍵的一步。有大量的可用資源在WEB或書籍中,還有很多資源被PHP安全聯盟的資料庫收錄:http: //phpsec.org/library/ .
首先,過濾所有的外部資料。
資料過濾在任何語言、任何平台上都是WEB 應用安全的基石。對變數進行了初始化,並且過濾了從外部得到的所有的數據,使得你事半功倍,花費不多的經理卻阻止了可能的主要安全漏洞。一個白名單比一個黑名單好。這意味著應認為所有的資料都是非法的直到它可以被證明為合法(比認為所有的資料都是合法的直到它可以被證明為非法要好)。