互聯網的時代中我們幾乎都離不開網路,那如果能夠對於Web具備基礎的知識,就能夠讓我們在使用網路的過程中提升風險意識,以減少被竊取、盜用的風險,進而保護個人資產,因此多一份知識在身上也就等於多了一份防身的武器,一天學一點,透過 微習慣 讓我們享受複利的效應。 在前幾篇我們介紹了「 同源政策(Same Origin Policy) 」與「 Web - 跨來源資源共用(CORS) 」的基本概念之後,大致上已經了解瀏覽器如何做個守門員,攔截非法的請求/回應,接下來我們就來談談駭客如何繞過「 同源政策(Same Origin Policy) 」進行跨站請求偽造( CSRF )。 CRSF 全名為「 Cross Site Request Forgery 」中文為跨站請求偽造,相信我們都搭過交通運輸工具,那麼基本上的機制就是認票/卡不認人,假設我們的票/卡片在不知情狀況下被盜取,那麼對方就能直接進入,這套用到網站也是相似的概念,在還未登出的狀況下,Cookie(通行證)被盜用,就能進入你在瀏覽的網站,進而竊取個人資訊,進行下一次的滲透攻擊。 CRSF 攻擊示意圖 原則上HTTP是屬於無態的,因此正常狀況下,並不會將正常網站的資訊帶到偽造網站,但由於Cookie的特性,會被附加在每個HTTP的請求中,因此才會產生如下圖般被偽造的風險。 登入正常網站,並在未登出期間收到釣魚郵件或者訊息。 點擊該釣魚郵件或訊息所附帶的網址連結。 進入該網站之後,按下駭客所埋藏的偽造請求按鈕。 由於Cookie的特性,按下該按鈕後,釣魚網站透過夾帶Cookie的方式,連結到我們尚未登出的正常網站,此時若駭客掌握了重要資訊的位置,那麼將可以使用這樣的偽造身分方式竊取我們的重要資訊,進而進行下一步的攻擊。 如何防範 CSRF ? 在談論如何防範 CSRF 時,我們將情境分為兩個部分,首先是使用者的部分,接著是網站開發者的部分,當然本篇文章並不會講述太多技術實作細節,著重在概念的貫通,有了概念,相信技術將迎刃而解。 ❗❗❗身為使用者可以做什麼防範? 我們每個人在使用瀏覽器時所扮演的角色都是使用者, 因此了解以下防範方式,可以保護我們的資料減少被竊取的風險。 定期清除瀏覽器歷程(所有),避免保留過多資料,萬一被竊取時,資料越多風險越高。 設定瀏覽器封鎖第三方Cookie,