📘 Day 11 學習重點:XSS(跨站腳本攻擊)與 CSRF(跨站請求偽造)
✅ 一、XSS(Cross-Site Scripting,跨站腳本攻擊)
📌 定義:
攻擊者在網頁中注入惡意 JavaScript,當使用者造訪該頁面時,腳本就會在使用者的瀏覽器中執行。
🎯 攻擊目標:
- 盜取 Cookie / Session
- 彈出惡意視窗或釣魚表單
- 偽造使用者操作
🧪 常見 XSS 類型:

🔐 防範方式:
- 對輸入做 編碼(HTML Escaping)
- 使用 CSP(Content Security Policy)
- 輸入驗證 + 輸出清洗(input validation + output sanitization)
✅ 二、CSRF(Cross-Site Request Forgery,跨站請求偽造)
📌 定義:
使用者登入某網站後,攻擊者誘使用戶在不知情下,發送一個未授權的請求給該網站。
🎯 攻擊條件:
- 使用者已登入某網站(例如銀行)
- 沒有做防護的網站會根據 Cookie 自動執行操作
- 攻擊者藉由釣魚或 XSS 觸發請求
📌 攻擊效果:
- 轉帳、改密碼、刪除帳號等操作被「悄悄執行」
🔐 防範方式:
- 使用 CSRF Token(每次請求唯一)
- 檢查 Referer / Origin 標頭
- 避免對敏感操作使用 GET 方法
📝 Day 11 練習題(5 題選擇題)
第 1 題
下列何者是 儲存型 XSS 的典型情境?A. 攻擊碼存在網址列中並立即執行
B. 使用者從電子郵件點擊連結中毒
C. 惡意 JavaScript 被儲存在留言系統中,其他人瀏覽時執行
D. 使用 HTTP 傳送 Cookie 被竊取
第 2 題
反射型 XSS 的攻擊碼通常會藏在哪裡?
A. 被害者的 Cookie B. 資料庫欄位中 C. DOM 結構內部 D. 網址(URL)參數
第 3 題
哪一個是防範 CSRF 攻擊的最佳做法?
A. 使用 SSL 傳輸資料 B. 改用 TCP 連線 C. 驗證請求來源與加入 Token D. 禁止所有表單提交
第 4 題
DOM 型 XSS 最常出現在:
A. 網站後端處理 SQL 查詢時 B. 使用者登入頁面中 C. JavaScript 操作頁面元素時未驗證資料 D. 使用 FTP 上傳圖片時
第 5 題
下列哪一項描述XSS 與 CSRF 的主要差異是正確的?
A. XSS 是在伺服器發動攻擊,CSRF 是在用戶端發動 B. XSS 執行惡意腳本,CSRF 假冒使用者送出請求 C. CSRF 主要針對資料庫,XSS 主要針對 Cookie D. XSS 不能被防範,CSRF 可以
答題:CCCDB
✅ 第 1 題:C ✅ 正確
儲存型 XSS 指的是惡意腳本被儲存在資料庫或留言板中,其他使用者瀏覽時中招。
✔️ 正解:C
✅ 第 2 題:D ✅ 正確
反射型 XSS 是腳本透過 URL 傳進來,立即被反射執行。常見於搜尋框、GET 請求等。
✔️ 正解:D
✅ 第 3 題:C ✅ 正確
防範 CSRF 最有效的方法是:加入 CSRF Token + 驗證請求來源(如 Referer)。
✔️ 正解:C
✅ 第 4 題:C ✅ 正確
DOM 型 XSS 是前端 JavaScript 操作時未驗證資料來源,導致惡意內容插入到網頁中執行。
✔️ 正解:C
❌ 第 5 題:C → 錯誤
正確答案是:B
✔️ XSS:利用 JavaScript 注入腳本執行 ✔️ CSRF:利用瀏覽器的信任,假冒使用者發送請求 C 選項「XSS 針對 Cookie、CSRF 針對資料庫」是錯誤簡化說法,不夠全面。