你的資料如何被偷走? Web安全篇 - 跨站請求偽造(CSRF )

更新於 發佈於 閱讀時間約 6 分鐘

互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。

在前幾篇我們介紹了「同源政策(Same Origin Policy)」與「Web - 跨來源資源共用(CORS)」的基本概念之後,大致上已經了解瀏覽器如何做個守門員,攔截非法的請求/回應,接下來我們就來談談駭客如何繞過「同源政策(Same Origin Policy)」進行跨站請求偽造(CSRF )。

CRSF全名為「Cross Site Request Forgery」中文為跨站請求偽造,相信我們都搭過交通運輸工具,那麼基本上的機制就是認票/卡不認人,假設我們的票/卡片在不知情狀況下被盜取,那麼對方就能直接進入,這套用到網站也是相似的概念,在還未登出的狀況下,Cookie(通行證)被盜用,就能進入你在瀏覽的網站,進而竊取個人資訊,進行下一次的滲透攻擊。

CRSF攻擊示意圖

原則上HTTP是屬於無態的,因此正常狀況下,並不會將正常網站的資訊帶到偽造網站,但由於Cookie的特性,會被附加在每個HTTP的請求中,因此才會產生如下圖般被偽造的風險。

raw-image
  1. 登入正常網站,並在未登出期間收到釣魚郵件或者訊息。
  2. 點擊該釣魚郵件或訊息所附帶的網址連結。
  3. 進入該網站之後,按下駭客所埋藏的偽造請求按鈕。
  4. 由於Cookie的特性,按下該按鈕後,釣魚網站透過夾帶Cookie的方式,連結到我們尚未登出的正常網站,此時若駭客掌握了重要資訊的位置,那麼將可以使用這樣的偽造身分方式竊取我們的重要資訊,進而進行下一步的攻擊。


🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔

如何防範CSRF

在談論如何防範CSRF時,我們將情境分為兩個部分,首先是使用者的部分,接著是網站開發者的部分,當然本篇文章並不會講述太多技術實作細節,著重在概念的貫通,有了概念,相信技術將迎刃而解。

❗❗❗身為使用者可以做什麼防範?

我們每個人在使用瀏覽器時所扮演的角色都是使用者, 因此了解以下防範方式,可以保護我們的資料減少被竊取的風險。

  • 定期清除瀏覽器歷程(所有),避免保留過多資料,萬一被竊取時,資料越多風險越高。
  • 設定瀏覽器封鎖第三方Cookie,雖然Google已經預計2023年底前逐步淘汰Cookie,但目前仍未將之做為預設選項,因此若擔心的朋友,可以自行設定,但某些網站功能可能無法正常使用。
  • 盡量不要瀏覽可疑網站,或者點擊信件、網站中不明連結。
  • 每次使用完一個網站就登出才到下一個網站,避免登入中的狀態被利用。

身為網站開發者應盡到什麼義務?

  • 個資、金流...等重要功能應增設一道牆,多一層的驗證(圖形驗證、簡訊驗證...等),以保障使用者。
  • 表單發送加上CRSF token,並設定為隱藏欄位,每次產生一組令牌,表單發送到後端時,檢查隱藏欄位的令牌是否合法,如此一來就算經過偽造網站,只要偽造網站不知道這組token就無法順利完成動作,但這也是僅防君子不防小人的手法,真正的壞人也能夠駭到我們的CRSF token。
<input type="hidden" name="csrftoken" value=<csrftoken>/>
  • 檢測HTTP Refer,因為我們知道CSRF攻擊者通常來自別的站點,因此透過Refer檢查來源,便可知道這次的請求是否合法。
if (request.headers.referer.includes("domain-1.com")){
...
}

瀏覽器本身的防禦

chrome在51版之後對於Cookie加入了SameSite的屬性,在夾帶Cookie時,會檢查這個屬性的配置,若符合規則,才能自動夾帶Cookie,讓網站開發者可以設定Cookie在什麼情況下才能自動夾帶,設定方式也非常簡單,只要在原本Set-Cookie之後加上SameSite即可:

Set-Cookie: xxxxxxxx; SameSite=Strict

SameSite具備兩種模式,若未指定則預設為Strict

  • Strict:嚴格模式,只有相同來源的網站才能自動帶上Cookie(識別證),也就是完全禁止第三方來源的Cookie。
  • Lex:放寬了一些限制,允許部分的HTML標籤或者HTTP請求,也就是在有限度的情況下可以夾帶第三方的Cookie。
  • None:當然也可以告訴瀏覽器,這個通行證可以不用檢查,但對於使用者來說就比較沒有保障囉,也就容易發生CSRF的狀況。

詳細說明請參考這裡


🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔

資源參考

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
130會員
288內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2023/04/23
Web Workers主要提供簡單的API讓網頁在背景執行緒中執行程式而不干擾使用者的操作。 javascript主要功能是與user操作頁面互動及操作dom,試想若使用多執行緒的概念,那麼一個動作是新增至某個dom節點,另一個動作則是修改該dom節點,此時瀏覽器應該使用哪個動作為準? 所以為了避免
Thumbnail
2023/04/23
Web Workers主要提供簡單的API讓網頁在背景執行緒中執行程式而不干擾使用者的操作。 javascript主要功能是與user操作頁面互動及操作dom,試想若使用多執行緒的概念,那麼一個動作是新增至某個dom節點,另一個動作則是修改該dom節點,此時瀏覽器應該使用哪個動作為準? 所以為了避免
Thumbnail
2023/04/23
Service worker與Web workers相同,也都是一段運行在瀏覽器後台的腳本,提供一些不需要與頁面直接交互的功能(操作dom),主要處理網路相關的問題,可以攔截網路請求進行相對應的優化動作,我們把它想像成與伺服器之間的代理服務器可能會比較容易理解,當網路環境不佳時便回應快取資源,待網路
Thumbnail
2023/04/23
Service worker與Web workers相同,也都是一段運行在瀏覽器後台的腳本,提供一些不需要與頁面直接交互的功能(操作dom),主要處理網路相關的問題,可以攔截網路請求進行相對應的優化動作,我們把它想像成與伺服器之間的代理服務器可能會比較容易理解,當網路環境不佳時便回應快取資源,待網路
Thumbnail
2023/04/23
Cookie簡介與個人隱私議題 在談Cookieless之前我們先來了解什麼是Cookie,這裡的Cookie並不是餅乾的意思,而是為了讓人們在網路上通訊時,能夠創造更無縫的體驗,想像一下,假設我們在使用網站時,每切換一頁就要進行登入一次,我想大部分的人都已經抓狂並放棄使用的吧! 而Cookie的出
Thumbnail
2023/04/23
Cookie簡介與個人隱私議題 在談Cookieless之前我們先來了解什麼是Cookie,這裡的Cookie並不是餅乾的意思,而是為了讓人們在網路上通訊時,能夠創造更無縫的體驗,想像一下,假設我們在使用網站時,每切換一頁就要進行登入一次,我想大部分的人都已經抓狂並放棄使用的吧! 而Cookie的出
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
文章最後將會提供一套CSP安全檢查工具,保護自身,避免踏入不安全地帶! 🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔 為什麼制定安全政策這麼重要呢? 可以制定哪些規則呢? 這邊僅著重於概念的描述,因此列出幾個常見的來源白名單配置選項,至於完整選項請參考這裡。
Thumbnail
文章最後將會提供一套CSP安全檢查工具,保護自身,避免踏入不安全地帶! 🔔還沒成為Potato會員的朋友點這裡加入哦,撰寫文章還能挖礦打造被動收入 🔔 為什麼制定安全政策這麼重要呢? 可以制定哪些規則呢? 這邊僅著重於概念的描述,因此列出幾個常見的來源白名單配置選項,至於完整選項請參考這裡。
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 攻擊的類型有哪些? 可能造成的危害 資源參考
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 攻擊的類型有哪些? 可能造成的危害 資源參考
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 CRSF攻擊示意圖 如何防範CSRF?
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 CRSF攻擊示意圖 如何防範CSRF?
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微小習慣的積累讓我們享受複利的效應。OO 如何運作? 📷
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微小習慣的積累讓我們享受複利的效應。OO 如何運作? 📷
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 同源(Origin)主要由以下三個部分組成:
Thumbnail
互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過微習慣讓我們享受複利的效應。 同源(Origin)主要由以下三個部分組成:
Thumbnail
CSRF全名為 Cross Site Request Forgery( 跨站請求偽造)。
Thumbnail
CSRF全名為 Cross Site Request Forgery( 跨站請求偽造)。
Thumbnail
上一篇文章,我們分享了十個資安自保技巧的頭五個;這篇再來分享另外五個也很重要的技巧。 如果你還沒看過那篇,可以先把這篇讀完,再去點文末的文章連結,把上一篇也讀完吧。
Thumbnail
上一篇文章,我們分享了十個資安自保技巧的頭五個;這篇再來分享另外五個也很重要的技巧。 如果你還沒看過那篇,可以先把這篇讀完,再去點文末的文章連結,把上一篇也讀完吧。
Thumbnail
1. 設定cookie為HttpOnly 在一般的情況下,cookie是可以透過javascript來存取的(document.cookie),如同上一篇所說的,有可能會有XSS攻擊的風險。 將cookie設定為HttpOnly,表示這個cookie無法透過js存取。
Thumbnail
1. 設定cookie為HttpOnly 在一般的情況下,cookie是可以透過javascript來存取的(document.cookie),如同上一篇所說的,有可能會有XSS攻擊的風險。 將cookie設定為HttpOnly,表示這個cookie無法透過js存取。
Thumbnail
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
Thumbnail
Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News