本章主要講解 HTTP 通訊過程當中的一些常見 Web 攻擊技術html
跨站腳本攻擊(Cross-Site Scripting, XSS)是指經過存在安全漏洞的 Web 網站註冊用戶的瀏覽器內運行非法的 HTML 標籤或者 JavaScript 代碼的一種攻擊方式。動態建立的 HTML 可能存在安全漏洞。前端
該攻擊可能形成如下影響:git
上圖的表單輸入之後直接把輸入內容當作 HTML 展現在頁面上,因此存在着安全漏洞,攻擊者能夠直接在輸入框內編輯危險的代碼,而後就會在頁面上運行。github
SQL 注入(SQL Injection)是指針對 Web 應用使用的數據庫,經過運行非法的 SQL 而產生的攻擊。該安全隱患有可能引起極大的安全威脅,有時會直接致使我的信息及機密信息的泄露。數據庫
SQL 注入可能會致使以下影響:瀏覽器
若是咱們不對輸入進行驗證就直接拿去拼接 SQL 的話,是可能會被執行 SQL 注入攻擊的。安全
目錄遍歷(Directory Traversal)攻擊是指對本無心公開的文件目錄,經過非法截斷其目錄路徑後,達成訪問目的的一種攻擊。這種攻擊有時也被叫作路徑遍歷攻擊(Path Traversal)。服務器
會話劫持(Session Hijack)是指攻擊者經過某種手段拿到了用戶的會話 ID,並不是法使用此會話 ID 假裝成用戶,達到攻擊的目的。cookie
具有認證功能的 Web 應用,使用會話 ID 的會話管理機制,做爲管理認證狀態的主流方式。會話 ID 中記錄客戶端的 Cookie 等信息,服務器端將會話 ID 與認證狀態進行一對一匹配管理。網絡
攻擊者可能經過如下方式得到會話 ID:
一般狀況下攻擊者在發現網站存在的 XSS 攻擊漏洞以後,會注入一段 JavaScript 代碼,經過 document.cookie
盜取到會話 ID,以後植入到本身的瀏覽器,就能夠假裝成被盜竊的用戶訪問被攻擊的網站。
跨站點請求僞造(Cross-Site Request Forgeries,CSRF)攻擊是指攻擊者經過設置好的陷阱,強制對已完成認證的用戶進行非預期的我的信息或設定信息等某些狀態更新,屬於被動攻擊。
最多見的例子就是在一個須要登陸才能進行操做的網站,攻擊者在該網站僞造了一個能夠觸發危險操做的內容(好比 a 和 button 標籤),用戶在不經意間點擊這些僞造的內容後就自動發起了請求,而這些請求若是是指向當前網站的話,用戶的會話 ID 等信息也會被帶上,使得被攻擊者不經意之間完成了一次可能極爲危險的操做。
點擊劫持(Clickjacking)是指利用透明的按鈕或連接作成陷阱,覆蓋在 Web 頁面之上。而後誘導用戶在不知情的狀況下點擊那個連接訪問內容的一種攻擊手段。這種行爲又稱爲界面假裝(UI Redressing)。
這種攻擊最多見的案例就是某些小網站……
DoS 攻擊(Denial of Service Attack)是一種讓運行中的服務呈中止狀態的攻擊。有時也叫做中止服務攻擊或者拒絕服務攻擊。DoS 攻擊的對象不只限於 Web 網站,還包括網絡設備及服務器等。
DoS 主要有如下兩種攻擊方式:
因而可知全部使得服務中止的攻擊均可以稱爲 DoS 攻擊。
DoS 攻擊在中國前端屆比較著名的案例就是阮一峯老師的博客遭到過的一次攻擊:DDOS 攻擊的防範教程。