前端安全漏洞與防范


前端安全漏洞與防范

跨站腳本攻擊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 嵌套的點擊劫持攻擊。

該響應頭有三個值可選
DENY,表示頁面不允許通過 iframe 的方式展示
SAMEORIGIN,表示頁面可以在相同域名下通過 iframe 的方式展示
ALLOW-FROM,表示頁面可以在指定來源的 iframe 中展示

js方式

`
    html {         display: none !important;     } `
以上代碼的作用就是當通過 iframe 的方式加載頁面時,攻擊者的網頁直接不顯示所有內容了。

SQL注入

實施

特殊密碼

防御

所有的查詢語句建議使用數據庫提供的參數化查詢接口**,參數化的語句使用參數而不是將用戶

輸入變量嵌入到 SQL 語句中,即不要直接拼接 SQL 語句。例如 Node.js 中的 mysqljs 庫的 query
方法中的 ? 占位參數。

嚴格限制Web應用的數據庫的操作權限**,給此用戶提供僅僅能夠滿足其工作的最低權限,從而

最大限度的減少注入攻擊對數據庫的危害

后端代碼檢查輸入的數據是否符合預期**,嚴格限制變量的類型,例如使用正則表達式進行一些

匹配處理。

對進入數據庫的特殊字符(',",\,<,>,&,*,; 等)進行轉義處理,或編碼轉換**。基本上所有的后端語言都有對字符串進行轉義處理的方法,比如 lodash 的 lodash._escapehtmlchar庫。

OS命令注入

OS命令注入和SQL注入差不多,只不過SQL注入是針對數據庫的,而OS命令注入是針對操作系統的。OS命令注

入攻擊指通過Web應用,執行非法的操作系統命令達到攻擊的目的。只要在能調用Shell函數的地方就有存在
被攻擊的風險。倘若調用Shell時存在疏漏,就可以執行插入的非法命令。

請求劫持

DNS劫持

DNS服務器(DNS解析各個步驟)被篡改,修改了域名解析的結果,使得訪問到的不是預期的

ip

HTTP劫持

升級HTTPS

DDOS

DDOS 不是一種攻擊,而是一大類攻擊的總稱。它有幾十種類型,新的攻擊方法還在不斷發明出來。網

站運行的各個環節,都可以是攻擊目標。只要把一個環節攻破,使得整個流程跑不起來,就達到了癱瘓
服務的目的。
其中,比較常見的一種攻擊是 cc 攻擊。它就是簡單粗暴地送來大量正常的請求,超出服務器的最大承
受量,導致宕機。我遭遇的就是 cc 攻擊,最多的時候全世界大概20多個 IP 地址輪流發出請求,每個地
址的請求量在每秒200次~300次。我看訪問日志的時候,就覺得那些請求像洪水一樣涌來,一眨眼就是
一大堆,幾分鍾的時間,日志文件的體積就大了100MB。說實話,這只能算小攻擊,但是我的個人網站
沒有任何防護,服務器還是跟其他人共享的,這種流量一來立刻就下線了。

攻擊

SYN Flood

HTTP Flood

防御

備份網站

- HTTP 請求的攔截 高防IP -靠譜的運營商 多個 Docker

帶寬擴容 + CDN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM