以下主要內容全部來自《白帽子講web安全》以及一部分我自己添加的補充运沦。
1. Secure by Default原則 —— 總則
安全問題本質是信任問題泵额,安全方案也是基于信任來設計的。
①白名單:注意白名單的配置及內容是否設置正確嫁盲。
②最小權限原則:系統(tǒng)只授予用戶必要的權限(業(yè)務所需的最小權限)烈掠。
2. 縱深防御(Defense In Depth)原則 —— 更全面、正確的看問題
①對根本問題實施針對性的安全方案瘾蛋。
從不同層面、不同角度對系統(tǒng)做出整體的解決方案哺哼。警惕安全方案中的“短板”叼风。
②在正確的地方做正確的事。
i) 深入理解威脅本質茵汰,做出正確應對孽鸡。
比如XSS防御技術的發(fā)展過程:
過濾特殊字符 -> 區(qū)分富文本和非富文本,encode非富文本 -> 對富文本做語法樹分析 -> 綜合方案豆胸。
ii) 把防御方案放到最合適的地方堡妒。
綜上,對于一個復雜的系統(tǒng)而言搬泥,縱深防御是構建安全體系的必然選擇。
雖說如此尉尾,就在去年看來縱深防御在現實中仍有難以落地的難言之隱燥透。但是今年5月,工信部印發(fā)《工業(yè)互聯網APP培育工程實施方案(2018-2020年)》肢藐,旨在推動工業(yè)互聯網應用生態(tài)加快發(fā)展吱韭。工業(yè)生產將面臨比以往任何時候都更為復雜的安全挑戰(zhàn),通付盾移動安全實驗室作為國內最早移動安全領域研究機構痘煤,以移動安全技術為基礎猿规,提出和建立了工業(yè)互聯網APP安全縱深防御技術體系。由此可見蘸拔,對于縱深防御的研究將會越來越深入并以實用為目標前進哼勇。
擴展閱讀:
3. 數據與代碼分離原則 —— 從漏洞成因看問題
要防止讓用戶數據被當做代碼執(zhí)行。
適用于各種如XSS帝璧、SQL injection湿刽、CRLF injection與X-Path等由注入引發(fā)安全問題的場景。
擴展閱讀:
4. 不可預測性原則 —— 從克服估計方法看問題
無法修復問題,但是可以使估計的方法無效刃滓。能有效地對抗基于篡改耸弄、偽造的攻擊。
該方法的實現需要用到加密算法砰诵、隨機數算法捌显、哈希算法,即讓攻擊者無法提前預知他想要得到的數據扶歪。
如微軟無法無法讓系統(tǒng)中的軟件沒有漏洞,它就使漏洞的攻擊方法失效哲嘲,比如的增加對抗緩沖區(qū)溢出等內存攻擊的功能媳禁。