Web 網絡攻擊及如何預防講解
一、Web 網絡攻擊
- 過濾和轉義特殊字符
- 對訪問數據庫的Web應用程序采用Web應用防火墻
- 嚴格檢查輸入變量的類型和格式
- 過濾和轉義特殊字符
- 對訪問數據庫的Web應用程序采用Web應用防火墻
web 網絡攻擊是黑客基于用戶上網操作行為或針對服務器等硬件設施進行攻擊的手段,例如客戶端植入惡意攻擊代碼段,動態修改網站權限,嵌入獲取用戶隱私信息等
最常見的攻擊方式:
1)XSS 跨站腳本攻擊
2)CSRF 跨站請求偽造
3)SQL 注入
二、XSS
跨站腳本攻擊,允許攻擊者將惡意代碼植入到提供給其它用戶使用的頁面中
XSS 的攻擊目的是為了盜取存儲在客戶端的 cookie 或者其他網站用于識別客戶端身份的敏感信息,盜取到用戶信息后,攻擊者會利用用戶信息與網站進行交互
根據攻擊的來源,XSS 攻擊可以分成:存儲型、反射型、DOM 型
-存儲型
- 攻擊者將惡意代碼提交到目標網站的數據庫中
- 用戶打開目標網站時,網站服務端將惡意代碼從數據庫取出,拼接在 HTML 中返回給瀏覽器
- 用戶瀏覽器接收到響應后解析執行,混在其中的惡意代碼也被執行
- 惡意代碼竊取用戶數據并發送到攻擊者的網站,或者冒充用戶的行為,調用目標網站接口執行攻擊者指定的操作
這種攻擊常見于帶有用戶保存數據的網站功能,如論壇發帖、商品評論、用戶私信等
-反射型
- 攻擊者構造出特殊的 URL,其中包含惡意代碼
- 用戶打開帶有惡意代碼的 URL 時,網站服務端將惡意代碼從 URL 中取出,拼接在 HTML 中返回給瀏覽器
- 用戶瀏覽器接收到響應后解析執行,混在其中的惡意代碼也被執行
- 惡意代碼竊取用戶數據并發送到攻擊者的網站,或者冒充用戶的行為,調用目標網站接口執行攻擊者指定的操作
反射型 XSS 跟存儲型 XSS 的區別是:存儲型 XSS 的惡意代碼存在數據庫里,反射型 XSS 的惡意代碼存在 URL 里。
反射型 XSS 漏洞常見于通過 URL 傳遞參數的功能,如網站搜索、跳轉等。
-DOM 型 XSS
- 攻擊者構造出特殊的 URL,其中包含惡意代碼
- 用戶打開帶有惡意代碼的 URL
- 用戶瀏覽器接收到響應后解析執行,前端 JavaScript 取出 URL 中的惡意代碼并執行
- 惡意代碼竊取用戶數據并發送到攻擊者的網站,或者冒充用戶的行為,調用目標網站接口執行攻擊者指定的操作
DOM 型 XSS 跟前兩種 XSS 的區別:DOM 型 XSS 攻擊中,取出和執行惡意代碼由瀏覽器端完成,屬于前端 JavaScript 自身的安全漏洞,而其他兩種 XSS 都屬于服務端的安全漏洞
三、CSRF
跨站請求偽造:攻擊者誘導受害者進入第三方網站,在第三方網站中,向被攻擊網站發送跨站請求
例如:
用戶從網站 A 登錄,保留了登錄憑證
同時攻擊者引導用戶訪問網站 B
B 網站向 A 網站發送一個請求,瀏覽器會攜帶 A 網站的 cookie
A 網站接收請求后,服務器對請求驗證確認,確實時用戶的憑證,被誤認為是用戶自己發出的請求
- 攻擊者在用戶毫不知情的情況下冒充受害者,執行了自定義的操作。
- 攻擊一般發起在第三方網站,而不是被攻擊的網站。被攻擊的網站無法防止攻擊發生
- 攻擊利用受害者在被攻擊網站的登錄憑證,冒充受害者提交操作;而不是直接竊取數據
- 整個過程攻擊者并不能獲取到受害者的登錄憑證,僅僅是“冒用”
- 跨站請求可以用各種方式:圖片URL、超鏈接、CORS、Form提交等等。部分請求方式可以直接嵌入在第三方論壇、文章中,難以進行追蹤
四、SQL 注入
SQL 注入攻擊,是通過將惡意的 SQL 查詢或添加語句插入到應用的輸入參數中,再在后臺 SQL 服務器上解析執行進行的攻擊
- 找出SQL漏洞的注入點
- 判斷數據庫的類型以及版本
- 猜解用戶名和密碼
- 利用工具查找Web后臺管理入口
- 入侵和破壞
如何預防?
- 嚴格檢查輸入變量的類型和格式
- 過濾和轉義特殊字符
- 對訪問數據庫的Web應用程序采用Web應用防火墻