《Web安全開發指南》讀後總結

gblee發表於2017-09-23

大概一星期前就讀完了。

之前瞭解到一些關於XSS攻擊和CSRF攻擊的內容,不過不甚瞭解,看到這本書也是講這方面的內容,於是就入手了。其實,內容和自己當初入手時想的還是有差距的。這本書更多的是偏向理論性的東西,實戰性的內容很少。而且裡面很多理論是站在作為產品負責人的角度來思考的。由於我現在還是學生,也還缺乏足夠的專案經驗,裡面有些理論在目前來看還是不好理解。不過讀了這本書還是有所收穫的,特別是對於web安全需要在開發前開發時以及開發完成進行測試時需要在安全方面進行思考和檢測的地方有了比較清晰的認識。

不久前,自己也學習了一些實戰性比較強的關於web安全的內容,順便做做記錄總結一下吧。

1.防止XSS攻擊策略

防止html標籤和屬性方面攻擊——對特殊符號進行轉義(這方面可以谷歌一下防XSS攻擊轉義函式)

防止js程式碼攻擊——對資料進行編碼(JSON.stringify函式)

富文字防止XSS——白名單和黑名單防禦方法

黑名單過濾:指定特定的屬性和標籤不允許使用,比如:標籤。缺點是可能出現遺漏,因為標籤的確很多很難做到無缺漏。

白名單過濾:只允許指定的標籤屬性可以使用,使用者功能受到限制,優點是操作簡單,不容易出現遺漏。

PS:開發中可能使用的工具

cheerio 和 xss:

https://github.com/cheeriojs/cheerio

https://github.com/leizongmin/js-xss/blob/master/README.zh.md

CSP:內容安全策略

https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

2.CSRF攻擊防禦

利用cookie same-site屬性(防止跨源帶cookie訪問)

利用影像驗證碼(這個經常可以看到啦)

PS:工具ccap

token驗證(隨機字串)——這個之前使用laravel的時候就接觸過,好像好多框架都會引入相應的token模組。

驗證referer

3.cookies 安全

使用者登入驗證:利用賬戶密碼+簽名id

sessionid 方法:利用隨機生成的字串存於cookies 用作使用者標示,不需要再cookies中儲存使用者資訊

4.防止點選劫持

點選劫持 (Clickjacking) 技術又稱為介面偽裝攻擊 (UI redress attack ),是一種視覺上的欺騙手段。攻擊者使用一個或多個透明的 iframe 覆蓋在一個正常的網頁上,然後誘使使用者在該網頁上進行操作,當使用者在不知情的情況下點選透明的 iframe 頁面時,使用者的操作已經被劫持到攻擊者事先設計好的惡意按鈕或連結上。攻擊者既可以通過點選劫持設計一個獨立的惡意網站,執行釣魚攻擊等;也可以與 XSS 和 CSRF 攻擊相結合,突破傳統的防禦措施,提升漏洞的危害程度 詳情可參考這篇文章:http://www.jianshu.com/p/251704d8ff18 防禦:利用javascript程式碼禁止內嵌;利用X-Frame-Options禁止內嵌

5.http傳輸竊聽

防禦:利用https傳輸協議;利用ca證照認證。

6.sql注入

ps:這個是關於資料庫方面的知識,涉及到sql語言,最近才在學習,這裡就簡單提一下,因為自己還不是很理解。原理:就是利用好sql語法就行偽造查詢資料庫資訊,從而竊取資料庫資料。

以上。

技術之路漫漫無終,唯有潛心學習積累。

相關文章