CSRF攻擊及防禦方法

496512338

 

因為之前project主要著重在XSS部分

網路上找到一篇文章裡面講到CSRF  就大概講一下

CSRF(Cross-Site Request Forgery)  通常翻譯為"跨網站冒名請求"

常常和XSS一起搭配攻擊  有些人也將他看成XSS的一種

其攻擊方式的原理是

一邊網站在使用者登入的情況下  都可以用某些指令來更改系統操作

而攻擊者就是在網頁中加入這些指令  當不知情的人登入該網站時

就會執行攻擊者設下的指令  進而修改使用者的系統資料

其範例老師上課有講過  在此不多提

 

那麼怎麼防禦呢??

因為大多程式都要在設計的時候針對可能被攻擊的方法來進行防禦規畫

才能有效的防止CSRF  而大多的WEB資安設備也無法有效防禦

因此大概有下列幾點建議

   網頁端:

1. 確認網頁程式不具有XSS弱點:前面有提到  CSRF大多配合XSS一起攻擊  所以要確認網頁本身沒有XSS的弱點

2. 在表單與連結中加入random tokens:利用random tokens進一步驗證被送出的資訊,避免連結或送出的資訊遭到偽造。

3. 機密資訊的傳遞時,需重新驗證或加入其他驗證機制:在傳遞機密資訊或修改系統設定時,要求重新輸入帳號密碼資料或加入圖片驗證碼

4. 盡可能不要使用GET去傳遞機密資訊

  使用者端:

       維持良好的上網習慣,不要使用自動登入的功能,也不要長時間維持登入狀態,操作完畢一定要登出系統

                            參考來源:http://fsms.bsmi.gov.tw/cat/epaper/970630-3.doc

回應

說到不要用 GET,
我看學校信箱也有 3 年的時間,
ID, Password 不但是用 GET 來傳,
也沒有用 MD5 之類的 Hash function 做處理,

不過我也沒啥資格說就是,
我們專題的網頁為了方便起見,全都是用 GET...
的確蠻糟糕的就是 ...
(>"< 老師抱歉,上課教的完全沒有學以致用 ... ...)