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