第九章 安全與加密

2022-05-13 17:41 更新

無論是開發(fā)Web應用的開發(fā)者還是企圖利用Web應用漏洞的攻擊者,對于Web程序安全這個話題都給予了越來越多的關注。特別是最近CSDN密碼泄露事件,更是讓我們對Web安全這個話題更加重視,所有人都談密碼色變,都開始檢測自己的系統(tǒng)是否存在漏洞。那么我們作為一名Go程序的開發(fā)者,一定也需要知道我們的應用程序隨時會成為眾多攻擊者的目標,并提前做好防范的準備。

很多Web應用程序中的安全問題都是由于輕信了第三方提供的數(shù)據(jù)造成的。比如對于用戶的輸入數(shù)據(jù),在對其進行驗證之前都應該將其視為不安全的數(shù)據(jù)。如果直接把這些不安全的數(shù)據(jù)輸出到客戶端,就可能造成跨站腳本攻擊(XSS)的問題。如果把不安全的數(shù)據(jù)用于數(shù)據(jù)庫查詢,那么就可能造成SQL注入問題,我們將會在9.3、9.4小節(jié)介紹如何避免這些問題。

在使用第三方提供的數(shù)據(jù),包括用戶提供的數(shù)據(jù)時,首先檢驗這些數(shù)據(jù)的合法性非常重要,這個過程叫做過濾,我們將在9.2小節(jié)介紹如何保證對所有輸入的數(shù)據(jù)進行過濾處理。

過濾輸入和轉義輸出并不能解決所有的安全問題,我們將會在9.1講解的CSRF攻擊,會導致受騙者發(fā)送攻擊者指定的請求從而造成一些破壞。

與安全加密相關的,能夠增強我們的Web應用程序的強大手段就是加密,CSDN泄密事件就是因為密碼保存的是明文,使得攻擊拿手庫之后就可以直接實施一些破壞行為了。不過,和其他工具一樣,加密手段也必須運用得當。我們將在9.5小節(jié)介紹如何存儲密碼,如何讓密碼存儲的安全。

加密的本質就是擾亂數(shù)據(jù),某些不可恢復的數(shù)據(jù)擾亂我們稱為單向加密或者散列算法。另外還有一種雙向加密方式,也就是可以對加密后的數(shù)據(jù)進行解密。我們將會在9.6小節(jié)介紹如何實現(xiàn)這種雙向加密方式。

目錄


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號