前言
隨著網路的普及,大多人上網的時間愈來愈多,不論是在網上工作,還是在網上娛樂,甚至在網上控制IoT設備。網路雖然方便,但往往乎略它潛在的風險,今天來說說和XSS類似的攻擊手法-CSRF攻擊
CSRF攻擊
CSRF (Cross Site Request Forgery)跨網站請求偽造,字面上最主要偽造和跨站,駭客拿了使用者的資訊在其他的網站去請求使用者網站。我舉個很簡單的例子,今天你們在一家餐廳吃飯,你正要點餐時,服務人員突然拿了單子,放在你的桌子上,且單子是寫你的桌號。
CSRF 攻擊發生在server上,駭客拿了使用者的 cookies 的request,在神不知鬼不覺發送請求,server端上沒有再次驗證此request是不是使用者發出的cookies 而無條件信任,因此server只知道這requeset是使用者的,而不知道是不是使用者自願發出來的
CSRF的流程

- 使用者在A網站登入
- 使用者在A網站中獲得cookies並儲存在自己的瀏覽器
- 在使用者離開A網站沒有登出時去瀏覽B網站,駭客在B網站去竊取使用者cookies,並在B網站的donain偽造使用者發送請求A網站,這時使用者不知道就完了
在做CSRF攻擊時一定會先做社交攻擊,因為CSRF攻擊一定要想辦法去獲取使用者cookies,不論是之後要提的社交攻擊中的釣魚、還是XSS攻擊。獲取使用者的cookies後,會在用其他的網站去植入JavaScript的惡意代碼中,像是植入在圖片、按鈕、甚至可以植入在iframe,這很像XSS攻擊,但有一個小小的不同是,網頁不一定要用別人的,也可以自己去仿一個,再用釣魚去受騙。
達成CSRF攻擊真的不容易,除了要想辦法去取得cookies之外,還要去判斷server是否是只以單一條件驗證網站身份如cookies、token,沒有驗證或是驗證的參數可以預測如固定的cookies。
防範CSRF攻擊
其實防範CSRF攻擊很簡單,我們單單只說server端好了,User端的社交攻擊等我們聊到社交攻擊再說。在server端,除了有驗證網站身份之外,在作金流相關的服務時可以加入第二道驗證,如Google Authenticator 或是 其它的OTP,再者在開發網頁時可以在header加入CSRF token,請Client端在發送請求時,要發送CSRF token。
結論
希文資訊提醒您在開發WEB應用程式時要注意驗證問題,就可以避免資料驗證不足而導致身分冒用而造成損失哦。
發佈留言