網站製作網頁設計學堂

CSRF 是什麼?網頁開發中不可或缺的安全機制

2026-01-10

點閱: 36

CSRF 是什麼?網頁開發中不可或缺的安全機制

CSRF 是什麼?網頁開發中不可或缺的安全機制

在現代網頁應用中,資安早已成為網頁開發不可分割的一部分,不再只是後端工程師的責任,而是前端、後端、甚至 UI/UX 設計都必須共同考量的一環。其中一個最常見、也最容易被忽略的攻擊手法,就是 CSRF(Cross-Site Request Forgery,跨站請求偽造)。本篇文章將以「網頁設計與實務開發」的角度,帶你認識什麼是 CSRF Token、它為什麼重要,以及在實際網站中該如何使用。


一、什麼是 CSRF?

CSRF 是一種利用「使用者已登入狀態」進行的攻擊方式。

簡單來說:

⚠️ 重點在於:瀏覽器會自動帶上 Cookie,攻擊者不需要知道使用者帳密。


二、為什麼網頁設計師也要在意 CSRF?

很多人會以為 CSRF 是「後端的事」,但實際上:

也就是說:

CSRF 防護是一種前後端協作的設計,而不是單一層面的問題。


三、CSRF Token 是什麼?

CSRF Token 是一段由伺服器產生、用來驗證請求合法性的隨機字串。

它具備幾個特性:

伺服器只會接受「帶有正確 Token」的請求。


四、CSRF Token 的基本運作流程

以下是一個典型流程:

  1. 使用者登入網站

  2. 伺服器產生一組 CSRF Token

  3. Token 被嵌入在頁面中(HTML 或 JavaScript)

  4. 使用者送出表單或 AJAX 請求

  5. 請求中一併送出 CSRF Token

  6. 伺服器驗證 Token 是否正確

  7. 驗證通過才執行動作

只要 Token 不正確或不存在,請求就會被拒絕。


五、在 HTML 表單中的常見做法

在傳統表單中,CSRF Token 通常是一個隱藏欄位:

<form method="post" action="/profile/update">
  <input type="hidden" name="csrf_token" value="伺服器產生的隨機字串">

  <input type="text" name="username">
  <button type="submit">儲存</button>
</form>

✔ 使用者看不到
✔ 攻擊者無法從外部網站取得


六、在 AJAX / Fetch 中的做法

現代網站大量使用 AJAX,CSRF Token 常見放在:

概念上會是:

fetch('/api/update', {
  method: 'POST',
  headers: {
    'X-CSRF-TOKEN': csrfToken
  },
  body: JSON.stringify(data)
});

伺服器只要驗證 Header 中的 Token 即可。


七、為什麼只靠 Cookie 不夠?

很多初學者會問:

「Cookie 不是已經有 Session 驗證了嗎?」

問題就在於:

CSRF Token 的目的,就是多加一層「使用者主動性驗證」


八、CSRF Token 與 UX 的平衡

從設計角度來看,好的 CSRF 防護應該是:

CSRF Token 正是符合這個條件的解法,安全卻不干擾體驗。


九、哪些操作一定要防 CSRF?

建議至少保護以下請求:

❗ 不建議只用 GET 來做資料修改。


十、總結

從網頁設計與開發的角度來看:

如果你正在打造一個可公開使用的網站,那麼 CSRF Token 並不是進階選項,而是基本配備


希望這篇文章能幫助你在網頁開發的過程中,更清楚理解 CSRF 是什麼、為什麼它是不可或缺的安全機制,以及 CSRF Token 在其中扮演的關鍵角色

台南網頁設計推薦頂控網頁設計團隊