前端安全漏洞與防范
跨站腳本攻擊XSS
定義
XSS (Cross-Site Scripting),跨站腳本攻擊,因為縮寫和 CSS重疊,所以只能叫 XSS。跨站腳本攻
擊是指通過存在安全漏洞的Web網站注冊用戶的瀏覽器內運行非法的非本站點HTML標簽或
JavaScript進行的一種攻擊。
危害
利用虛假輸入表單騙取用戶個人信息。
利用腳本竊取用戶的Cookie值,被害者在不知情的情況下,幫助攻擊者發送惡意請求。
顯示偽造的文章或圖片。
獲取頁面數據
獲取Cookies
劫持前端邏輯
發送請求
偷取網站的任意數據
偷取用戶的資料
偷取用戶的秘密和登錄態
欺騙用戶
實施
反射型:url參數直接注入
存儲型:存儲到DB后讀取時注入
防御
啟用XSS過濾
內容安全策略 (CSP, Content Security Policy)
是一個附加的安全層,用於幫助檢測和緩解某
些類型的攻擊,包括跨站腳本 (XSS) 和數據注入等攻擊。 這些攻擊可用於實現從數據竊取到
網站破壞或作為惡意軟件分發版本等用途。
CSP 本質上就是建立白名單,開發者明確告訴瀏覽器哪些外部資源可以加載和執行。我們只
需要配置規則,如何攔截是由瀏覽器自己實現的。我們可以通過這種方式來盡量減少 XSS 攻
擊。
轉義字符
用戶的輸入永遠不可信任的,最普遍的做法就是轉義輸入輸出的內容,對於引號、尖括號、斜杠
進行轉義
黑名單
白名單
跨站請求偽造CSRF
定義
CSRF(Cross Site Request Forgery),即跨站請求偽造,是一種常見的Web攻擊,它利用用戶已登
錄的身份,在用戶毫不知情的情況下,以用戶的名義完成非法操作。
危害
利用用戶登錄態
用戶不知情
完成業務請求
盜取用戶資金(轉賬,消費)
冒充用戶發帖背鍋
損害網站聲譽
防御
禁止第三方網站帶Cookie - 有兼容性問題
Referer Check - Https不發送referer
點擊劫持
定義
點擊劫持是一種視覺欺騙的攻擊手段。攻擊者將需要攻擊的網站通過 iframe 嵌套的方式嵌入自己
的網頁中,並將 iframe 設置為透明,在頁面中透出一個按鈕誘導用戶點擊。
防御
X-FRAME-OPTIONS
X-FRAME-OPTIONS 是一個 HTTP 響應頭,在現代瀏覽器有一個很好的支持。這個 HTTP 響應頭 就
是為了防御用 iframe 嵌套的點擊劫持攻擊。