絕對安全的系統是不存在的,因此安全業(yè)界常用的方法有助于平衡可用性和風(fēng)險。對用戶(hù)提交的每一個(gè)變量都進(jìn)行雙重驗證可能是一個(gè)很負責任的行為,但會(huì )導致用戶(hù)必須花很多時(shí)間去填寫(xiě)一張復雜無(wú)比的表格,從而迫使某些用戶(hù)嘗試繞過(guò)安全機制。
最好的安全機制應該能在不防礙用戶(hù),并且不過(guò)多地增加開(kāi)發(fā)難度的情況下做到能滿(mǎn)足需求。實(shí)際上,一些安全問(wèn)題往往會(huì )發(fā)生在這種過(guò)度強化安全機制的系統上。
不要忘記著(zhù)名的等強原則:一個(gè)系統的的強度是由它最薄弱的環(huán)節決定的(譯者注:相當于木桶原理)。如果所有的事務(wù)都基于時(shí)間、地點(diǎn)、事務(wù)種類(lèi)進(jìn)行詳細的記錄,而用戶(hù)驗證卻只依靠一個(gè) cookie,那么用戶(hù)所對應的事務(wù)記錄的可信度就被大大剝弱了。
調試代碼的時(shí)候一定要記住,就算是一個(gè)簡(jiǎn)單的頁(yè)面也很難對所有可能發(fā)生的情況進(jìn)行檢測:對你不滿(mǎn)的雇員不一定會(huì )輸入如你所愿的東西,黑客也有足夠的時(shí)間研究你的系統,當然,你的寵物貓也會(huì )跳到你的鍵盤(pán)上。這就是為什么必須檢查所有的代碼,去發(fā)現哪里可以引入不正當的數據,然后對代碼改進(jìn)、簡(jiǎn)化或者增強。
互聯(lián)網(wǎng)上充滿(mǎn)了為了成名而破壞你的代碼、攻擊你的網(wǎng)站并輸入不正當數據的人,總之他們會(huì )使你的生活充滿(mǎn)樂(lè )趣。無(wú)論是大網(wǎng)站還是小網(wǎng)站,只要能和互聯(lián)網(wǎng)連接,就會(huì )成為一個(gè)目標。很多黑客程序并不理會(huì )網(wǎng)站的大小,只會(huì )機械地掃描 IP 地址并找尋受害者。我們希望那個(gè)不要是你。