摘要:安全問題的分類按照所發(fā)生的區(qū)域分類后端安全問題所有發(fā)生在后端服務器應用服務當中的安全問題前端安全問題所有發(fā)生在瀏覽器單頁面應用頁面當中的安全問題按照團隊中哪個角色最適合來修復安全問題分類后端安全問題針對這個安全問題,后端最適合來修復前端安全
安全問題的分類 按照所發(fā)生的區(qū)域分類
后端安全問題:所有發(fā)生在后端服務器、應用、服務當中的安全問題
前端安全問題:所有發(fā)生在瀏覽器、單頁面應用、Web頁面當中的安全問題
按照團隊中哪個角色最適合來修復安全問題分類后端安全問題:針對這個安全問題,后端最適合來修復
前端安全問題:針對這個安全問題,前端最適合來修復
綜合以上前端安全問題:發(fā)生在瀏覽器、前端應用當中或者通常由前端開發(fā)工程師來對其進行修復的安全問題
瀏覽器安全 同源策略是一種約定,是瀏覽器最核心也最基本的安全功能,限制了來自不同源的document或者腳本,對當前document讀取或設置某些屬性
影響“源”的因素有:host(域名或者IP地址)、子域名、端口、協(xié)議
對瀏覽器來說,DOM、Cookie、XMLHttpRequest會受到同源策略的限制
不受同源策略的標簽
參考上圖,我們可以總結,完成一次CSRF攻擊,必須滿足兩個條件
用戶登錄受信任網(wǎng)站A,并且在本地生成Cookie
在不登出網(wǎng)站A的情況下,訪問危險網(wǎng)站B
CSRF本質(zhì)CSRF攻擊是攻擊者利用用戶身份操作用戶賬戶的一種攻擊方式CSRF的防御
CSRF能攻擊成功的本質(zhì)原因:重要操作的所有參數(shù)都是可以被攻擊者猜測到的
解決方案 1、驗證碼CSRF攻擊過程中,用戶在不知情的情況下構造了網(wǎng)絡請求,添加驗證碼后,強制用戶必須與應用進行交互
優(yōu)點:簡潔而有效
缺點:網(wǎng)站不能給所有的操作都加上驗證碼
2、Referer Check利用HTTP頭中的Referer判斷請求來源是否合法
Referer首部包含了當前請求頁面的來源頁面的地址
優(yōu)點:簡單易操作(只需要在最后給所有安全敏感的請求統(tǒng)一添加一個攔截器來檢查Referer的值就行)
缺點:服務器并非什么時候都能取到Referer
很多出于保護用戶隱私的考慮,限制了Referer的發(fā)送。
比如從HTTPS跳轉(zhuǎn)到HTTP,出于安全的考慮,瀏覽器不會發(fā)送Referer
瀏覽器兼容性
關于Referer的更多詳細資料:https://75team.com/post/everything-you-could-ever-want-to-know-and-more-about-controlling-the-referer-header-fastmail-blog.html
比如一個刪除操作的URL是:http://host/path/delete?uesrname=abc&item=123
保持原參數(shù)不變,新增一個參數(shù)Token,Token值是隨機的,不可預測
http://host/path/delete?username=abc&item=123&token=[random(seed)]
由于Token的存在,攻擊者無法再構造出一個完整的URL實施CSRF攻擊
優(yōu)點:比檢查Referer方法更安全,并且不涉及用戶隱私
缺點:對所有的請求都添加Token比較困難
更多關于CSRF詳細可參考:
CSRF 攻擊的應對之道:https://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/
CSRF原理剖析:http://netsecurity.51cto.com/art/200812/102951.htm
維基百科CSRF:https://en.wikipedia.org/wiki/Cross-site_request_forgery
CSRF實例:http://netsecurity.51cto.com/art/200812/102925.htm
需要注意的點:Token需要足夠隨機,必須用足夠安全的隨機數(shù)生成算法
Token應該為用戶和服務器所共同持有,不能被第三方知曉
Token可以放在用戶的Session或者瀏覽器的Cookie中
盡量把Token放在表單中,把敏感操作由GET改為POST,以form表單的形式提交,可以避免Token泄露(比如一個頁面:http://host/path/manage?username=abc&token=[random],在此頁面用戶需要在這個頁面提交表單或者單擊“刪除”按鈕,才能完成刪除操作,在這種場景下,如果這個頁面包含了一張攻擊者能指定地址的圖片,則這個頁面地址會作為HTTP請求的Refer發(fā)送到evil.com的服務器上,從而導致Token泄露)
XSRF當網(wǎng)站同時存在XSS和CSRF漏洞時,XSS可以模擬客戶端瀏覽器執(zhí)行任意操作,在XSS攻擊下,攻擊者完全可以請求頁面后,讀取頁面內(nèi)容中的Token值,然后再構造出一個合法的請求結論
安全防御的體系應該是相輔相成、缺一不可的
3、點擊劫持(ClickJacking) 什么是點擊劫持點擊劫持是一種視覺上的欺騙手段。攻擊者使用一個透明的、不可見的iframe,覆蓋在一個網(wǎng)頁上,然后誘使用戶在網(wǎng)頁上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面。通過調(diào)整iframe頁面的位置,可以誘使用戶恰好點擊在iframe頁面的一些功能性按鈕上。防御點擊劫持:X-Frame-Options
X-Frame-Options HTTP響應頭是用來給瀏覽器指示允許一個頁面能否在、中展現(xiàn)的標記有三個可選的值
DENY:瀏覽器會拒絕當前頁面加載任何frame頁面(即使是相同域名的頁面也不允許)
SAMEORIGIN:允許加載frame頁面,但是frame頁面的地址只能為同源域名下的頁面
ALLOW-FROM:可以加載指定來源的frame頁面(可以定義frame頁面的地址)
瀏覽器的兼容性 小結 綜合以上三大前端安全,我們可以總結謹慎用戶輸入信息,進行輸入檢查(客戶端和服務端同時檢查)
在變量輸出到HTML頁面時,都應該進行編碼或轉(zhuǎn)義來預防XSS攻擊
該用驗證碼的時候一定要添上
盡量在重要請求上添加Token參數(shù),注意Token要足夠隨機,用足夠安全的隨機數(shù)生成算法
當有
檢查驗證請求來源,對每一個重要的操作都進行重新驗證
不要將重要文件、備份文件存放在公眾可以訪問到的地方
安全防御的體系是相輔相成、缺一不可的
只收藏不點贊的都是耍流氓哦文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/113264.html
摘要:安全問題的分類按照所發(fā)生的區(qū)域分類后端安全問題所有發(fā)生在后端服務器應用服務當中的安全問題前端安全問題所有發(fā)生在瀏覽器單頁面應用頁面當中的安全問題按照團隊中哪個角色最適合來修復安全問題分類后端安全問題針對這個安全問題,后端最適合來修復前端安全 安全問題的分類 按照所發(fā)生的區(qū)域分類 后端安全問題:所有發(fā)生在后端服務器、應用、服務當中的安全問題 前端安全問題:所有發(fā)生在瀏覽器、單頁面應用、...
摘要:我的書簽我的書簽謹慎導入,小心覆蓋工具類版本管理快速切換源配置教程指南可視化工具前端工具集前端助手網(wǎng)絡封包截取工具格式化工具標注工具模擬請求類深入淺出布局你所不知道的動畫技巧與細節(jié)常用代碼黑魔法小技巧,讓你少寫不必要的,代碼更優(yōu)雅一勞永 我的書簽 我的書簽(謹慎導入,小心覆蓋) 工具類 nvm: node版本管理 nrm: 快速切換npm源 shell: zsh+on-my-zsh配...
摘要:我的書簽我的書簽謹慎導入,小心覆蓋工具類版本管理快速切換源配置教程指南可視化工具前端工具集前端助手網(wǎng)絡封包截取工具格式化工具標注工具模擬請求類深入淺出布局你所不知道的動畫技巧與細節(jié)常用代碼黑魔法小技巧,讓你少寫不必要的,代碼更優(yōu)雅一勞永 我的書簽 我的書簽(謹慎導入,小心覆蓋) 工具類 nvm: node版本管理 nrm: 快速切換npm源 shell: zsh+on-my-zsh配...
閱讀 2063·2021-11-11 16:55
閱讀 1398·2021-09-28 09:36
閱讀 1046·2019-08-29 15:21
閱讀 1575·2019-08-29 14:10
閱讀 2762·2019-08-29 14:08
閱讀 1635·2019-08-29 12:31
閱讀 3250·2019-08-29 12:31
閱讀 981·2019-08-26 16:47