總則

絕對(duì)安全的系統(tǒng)是不存在的,因此安全業(yè)界常用的方法有助于平衡可用性和風(fēng)險(xiǎn)。對(duì)用戶(hù)提交的每一個(gè)變量都進(jìn)行雙重驗(yàn)證可能是一個(gè)很負(fù)責(zé)任的行為,但會(huì)導(dǎo)致用戶(hù)必須花很多時(shí)間去填寫(xiě)一張復(fù)雜無(wú)比的表格,從而迫使某些用戶(hù)嘗試?yán)@過(guò)安全機(jī)制。

最好的安全機(jī)制應(yīng)該能在不防礙用戶(hù),并且不過(guò)多地增加開(kāi)發(fā)難度的情況下做到能滿(mǎn)足需求。實(shí)際上,一些安全問(wèn)題往往會(huì)發(fā)生在這種過(guò)度強(qiáng)化安全機(jī)制的系統(tǒng)上。

不要忘記著名的等強(qiáng)原則:一個(gè)系統(tǒng)的的強(qiáng)度是由它最薄弱的環(huán)節(jié)決定的(譯者注:相當(dāng)于木桶原理)。如果所有的事務(wù)都基于時(shí)間、地點(diǎn)、事務(wù)種類(lèi)進(jìn)行詳細(xì)的記錄,而用戶(hù)驗(yàn)證卻只依靠一個(gè) cookie,那么用戶(hù)所對(duì)應(yīng)的事務(wù)記錄的可信度就被大大剝?nèi)趿恕?

調(diào)試代碼的時(shí)候一定要記住,就算是一個(gè)簡(jiǎn)單的頁(yè)面也很難對(duì)所有可能發(fā)生的情況進(jìn)行檢測(cè):對(duì)你不滿(mǎn)的雇員不一定會(huì)輸入如你所愿的東西,黑客也有足夠的時(shí)間研究你的系統(tǒng),當(dāng)然,你的寵物貓也會(huì)跳到你的鍵盤(pán)上。這就是為什么必須檢查所有的代碼,去發(fā)現(xiàn)哪里可以引入不正當(dāng)?shù)臄?shù)據(jù),然后對(duì)代碼改進(jìn)、簡(jiǎn)化或者增強(qiáng)。

互聯(lián)網(wǎng)上充滿(mǎn)了為了成名而破壞你的代碼、攻擊你的網(wǎng)站并輸入不正當(dāng)數(shù)據(jù)的人,總之他們會(huì)使你的生活充滿(mǎn)樂(lè)趣。無(wú)論是大網(wǎng)站還是小網(wǎng)站,只要能和互聯(lián)網(wǎng)連接,就會(huì)成為一個(gè)目標(biāo)。很多黑客程序并不理會(huì)網(wǎng)站的大小,只會(huì)機(jī)械地掃描 IP 地址并找尋受害者。我們希望那個(gè)不要是你。