PHP安全之簡(jiǎn)介和總則
PHP 作為一種強(qiáng)大的語言,無論是以模塊還是 CGI 的方式安裝,它的解釋器都可以在服務(wù)器上訪問文件、運(yùn)行命令以及創(chuàng)建網(wǎng)絡(luò)連接等。這些功能也許會(huì)給服務(wù)器添加很多不安全因素,但是只要正確地安裝和配置 PHP,以及編寫安全的代碼,那么 PHP 相對(duì)于 Perl 和 C 來說,是能創(chuàng)建出更安全的 CGI 程序的。而且,也可以在可用性和安全性之間找到一個(gè)很好的平衡點(diǎn)。
PHP 可能會(huì)被用在很多不同的方面,因此,PHP 內(nèi)置的選項(xiàng)以方便用戶對(duì)其進(jìn)行配置。雖然眾多的選項(xiàng)可以使 PHP 完成很多工作,但是對(duì)這些選項(xiàng)的設(shè)定以及對(duì)服務(wù)器的配置很可能會(huì)產(chǎn)生安全問題。
PHP 的選項(xiàng)與其語法一樣,具有很高的靈活性。使用 PHP,可以在只有 shell 用戶權(quán)限的環(huán)境下創(chuàng)建完善的服務(wù)器端程序,或者在被嚴(yán)格限制環(huán)境下使用它來完成服務(wù)器端包含(Server-Side Includes)而無需承但太大的風(fēng)險(xiǎn)。如何建立這樣一種環(huán)境,其安全性如何,很大程度上取決于 PHP 的開發(fā)者。
本章以一些常規(guī)的安全建議作開頭,講述如何在不同的環(huán)境下盡可能地提高安全性,以及介紹對(duì)于不同安全級(jí)別的一些編程原則。
總則絕對(duì)安全的系統(tǒng)是不存在的,因此安全業(yè)界常用的方法有助于平衡可用性和風(fēng)險(xiǎn)。對(duì)用戶提交的每一個(gè)變量都進(jìn)行雙重驗(yàn)證可能是一個(gè)很負(fù)責(zé)任的行為,但會(huì)導(dǎo)致用戶必須花很多時(shí)間去填寫一張復(fù)雜無比的表格,從而迫使某些用戶嘗試?yán)@過安全機(jī)制。
最好的安全機(jī)制應(yīng)該能在不防礙用戶,并且不過多地增加開發(fā)難度的情況下做到能滿足需求。實(shí)際上,一些安全問題往往會(huì)發(fā)生在這種過度強(qiáng)化安全機(jī)制的系統(tǒng)上。
不要忘記著名的等強(qiáng)原則:一個(gè)系統(tǒng)的的強(qiáng)度是由它最薄弱的環(huán)節(jié)決定的(相當(dāng)于木桶原理)。如果所有的事務(wù)都基于時(shí)間、地點(diǎn)、事務(wù)種類進(jìn)行詳細(xì)的記錄,而用戶驗(yàn)證卻只依靠一個(gè) cookie,那么用戶所對(duì)應(yīng)的事務(wù)記錄的可信度就被大大剝?nèi)趿恕?/p>
調(diào)試代碼的時(shí)候一定要記住,就算是一個(gè)簡(jiǎn)單的頁面也很難對(duì)所有可能發(fā)生的情況進(jìn)行檢測(cè):對(duì)你不滿的雇員不一定會(huì)輸入如你所愿的東西,黑客也有足夠的時(shí)間研究你的系統(tǒng),當(dāng)然,你的寵物貓也會(huì)跳到你的鍵盤上。這就是為什么必須檢查所有的代碼,去發(fā)現(xiàn)哪里可以引入不正當(dāng)?shù)臄?shù)據(jù),然后對(duì)代碼改進(jìn)、簡(jiǎn)化或者增強(qiáng)。
互聯(lián)網(wǎng)上充滿了為了成名而破壞你的代碼、攻擊你的網(wǎng)站并輸入不正當(dāng)數(shù)據(jù)的人,總之他們會(huì)使你的生活充滿樂趣。無論是大網(wǎng)站還是小網(wǎng)站,只要能和互聯(lián)網(wǎng)連接,就會(huì)成為一個(gè)目標(biāo)。很多黑客程序并不理會(huì)網(wǎng)站的大小,只會(huì)機(jī)械地掃描 IP 地址并找尋受害者。我們希望那個(gè)不要是你。
相關(guān)文章:
1. CSS3中Transition屬性詳解以及示例分享2. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)3. jsp文件下載功能實(shí)現(xiàn)代碼4. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法5. asp.net core項(xiàng)目授權(quán)流程詳解6. html中的form不提交(排除)某些input 原創(chuàng)7. ASP常用日期格式化函數(shù) FormatDate()8. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫特效9. ASP動(dòng)態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗(yàn)分享10. XMLHTTP資料
