在現代這個網路自由開放且普及的時代,駭客攻擊事件層出不窮,從電腦病毒到 DDoS 攻擊,手段五花八門。今天,我們將介紹兩種針對網頁本身的常見攻擊——CSRF 和 XSS。
跨站請求偽造 (Cross-Site Request Forgery, CSRF)
攻擊方式
CSRF 攻擊的核心在於利用使用者對網站的信任來進行攻擊。
攻擊者會誘使用戶在已登入目標網站的情況下,點擊一個包含惡意請求的超連結或瀏覽某個頁面,藉此利用用戶的身份資訊(如 Cookie 或 Session ID)來執行未經授權的操作。由於這些請求看起來像是由合法用戶發出,網站無法識別這其實是來自攻擊者的惡意請求。
影響與危害
- 未經授權的操作:攻擊者能夠利用 CSRF 攻擊執行使用者未授權的操作,如更改帳戶密碼或發送交易請求等。
- 竊取資源:攻擊者可能藉著受害者的身份發送請求,從而轉移或濫用資源,尤其是在涉及金融交易或個人敏感數據的情境中。
- 信任劫持:CSRF 攻擊利用的是受害者對網站的信任,而非網站對攻擊者的信任。因此,這類攻擊不易被發現,且後果可能非常嚴重。
防範 CSRF 攻擊
- 使用 CSRF Token:每次請求時都需要附帶一個 Token,讓伺服器端確認請求是否合法。
- 使用雙重身份驗證(2FA):對於關鍵操作,可以啟用雙重身份驗證以進一步保障安全。
- 使用 SameSite Cookie 屬性:SameSite 是一個 HTTP Cookie 屬性,可以防止 Cookie 被跨站點請求帶走。當設為
SameSite=Lax
或SameSite=Strict
時,瀏覽器會限制第三方網站在發送請求時攜帶該 Cookie。這樣,即便攻擊者試圖發送惡意請求,也無法附帶有效的用戶 Cookie。
跨站腳本攻擊 (Cross-Site Scripting, XSS)
攻擊方式
XSS 攻擊的核心在於利用網站的漏洞進行攻擊。
攻擊者將包含惡意腳本(通常是 JavaScript)的代碼注入到網站中,並讓該網站的用戶在瀏覽時執行這些腳本。這些腳本在用戶端執行,能夠竊取用戶的敏感資訊或執行其他危險操作。
攻擊類型
- 反射型 XSS(Reflected XSS):最常見的 XSS 攻擊形式。攻擊者設計一個精心構造的 URL,誘使用戶點擊,並在用戶的瀏覽器中即時執行該惡意腳本。這些腳本不會被永久儲存,而是即時反射並執行。
- 存儲型 XSS(Stored XSS):攻擊者將惡意腳本注入目標網站的資料庫、留言板、討論區或其他儲存媒介中,這些腳本會在後續被其他用戶訪問時自動執行。
- DOM 型 XSS(DOM-based XSS):這是一種特殊的反射型 XSS,發生在客戶端的 JavaScript 中。攻擊者通過操縱頁面上的 DOM(文檔對象模型)來執行惡意腳本,並依賴網站的客戶端代碼(通常是 JavaScript)來處理用戶輸入。
影響與危害
- 竊取用戶資料:攻擊者可以通過 XSS 攻擊竊取用戶的 Cookie、Session ID,甚至帳戶信息,這些數據可以被用來進行身份冒充或其他惡意攻擊。
- 網頁篡改:攻擊者可以修改網頁內容,顯示虛假的資訊,進行釣魚攻擊,誘導用戶提供敏感資料。
- 執行不當操作:如果攻擊者能在目標用戶的瀏覽器中執行腳本,他們可能會執行不正當操作,如發送偽造請求修改用戶帳戶設置,或執行其他敏感操作。
防範 XSS 攻擊
- 輸入驗證與過濾:對前端輸入的所有資料進行驗證與過濾,視為潛在的惡意代碼,防止注入。
- 使用內容安全策略(CSP, Content Security Policy):CSP 可以限制頁面載入哪些資源、執行哪些腳本,從而減少 XSS 攻擊的風險。
- 使用 HttpOnly 和 Secure 標誌:設定 Cookie 的
HttpOnly
屬性,確保 JavaScript 無法訪問 Cookie,並設定Secure
標誌,讓 Cookie 僅能通過 HTTPS 協議傳輸,從而降低 XSS 攻擊的風險。