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