章 23. 總則

絕對安全的系統是不存在的,因此安全業界常用的方法有助於平衡可用性和風險。對會員送出的每一個變量都進行雙重驗證可能是一個很負責任的行為,但會導致會員必須花很多時間去填寫一張複雜無比的表格,從而迫使某些會員嘗試繞過安全機制。

最好的安全機制應該能在不妨礙會員,並且不過多地增加開發難度的情況下做到能滿足需求。實際上,一些安全問題往往會發生在這種過度強化安全機制的系統上。

不要忘記著名的等強原則:一個系統的的強度是由它最薄弱的環節決定的(譯者註:相當於木桶原理)。若果所有的事務都基於時間、地點、事務種類進行詳細的記錄,而會員驗證卻只依靠一個 cookie,那麼會員所對應的事務記錄的可信度就被大大剝弱了。

除錯代碼的時候一定要記住,就算是一個簡單的頁面也很難對所有可能發生的情況進行檢驗:對你不滿的僱員不一定會輸入如你所願的東西,黑客也有足夠的時間研究你的系統,當然,你的寵物貓也會前往你的鍵盤上。這就是為什麼必須檢查所有的代碼,去發現哪裡可以引入不正當的資料,然後對代碼改進、簡化或是增強。

際網路上充滿了為了成名而破壞你的代碼、攻擊你的網站並輸入不正當資料的人,總之他們會使你的生活充滿樂趣。無論是大網站還是小網站,只要能和際網路連線,就會成為一個目的。很多黑客程式並不理會網站的大小,只會機械地掃瞄 IP 位址並找尋受害者。我們希望那個不要是你。