跨站攻擊:
使用者首先訪問網銀站點,登入成功後,瀏覽器拿到token
使用者並沒有登出網銀站點,此時又登入乙個釣魚站點
釣魚站點有乙個**鏈結,使用者點了此鏈結,此鏈結的內容是乙個url,而此url的實質就是轉賬給釣魚者,用的是網銀的標準轉賬url.
使用者點此鏈結後,瀏覽器封裝http請求,當看見是訪問那個尚未退出的網銀站點,就自動加上了cookie與auth token
於是,authentication通過,就會真的轉賬了
同源策略:
a網頁設定的cookie,b網頁不能開啟,除非ab同源。同源指的是:協議相同,網域名稱相同,埠相同。
csrf token防止跨站攻擊:
在cookie中放置csrftoken,乙個隨機串
網銀**的網頁原始碼中會將該串同時也放置到提交表單的隱藏域
網銀**後端會比較cookie中的csrftoken和表單中的隱藏域,若一致,則通過驗證
對於釣魚**來說,因為同源策略,它無法獲取到網銀**的cookie,只能是利用瀏覽器封裝http請求的時候把網銀**的cookie一起封進去;
但是因為它無法讀取cookie,所以無法偽造乙個表單,在其中的隱藏域中填寫和cookie中csrftoken一樣的值。因此,它無法通過驗證。
以django為例,說明如何使用csrf token防止跨站攻擊:
在django的配置檔案中,如settings.py,找到 middleware_classes 這一項,使能其中的 django.middleware.csrf.csrfviewmiddleware
使能以上這一項後,就相當於使用了 csrfviewmiddleware 這個類,尤其是其中的 process_view()函式。這個類一般在csrf.py中。
process_view()函式會比較http request中的cookie裡的csrf token 和 頭部的 x-csrftoken 是否相同。若不相同,則相當於檢測失敗,有跨站攻擊的危險。
因此,這也要求前端在提交http request的時候,需要在其中新增header欄位 x-csrftoken,其值需從cookie中取得以保證一致。
PHP和XSS跨站攻擊
其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。如果你不懂什麼是xss,可以看這裡,或者這裡 中文的也許會好懂一些 國內不少論壇都存在跨站指令碼漏洞,例如這裡 有乙個goo...
PHP和XSS跨站攻擊
其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的 乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。如果你不懂什麼是xss,可以看 這裡,或者 這裡 中文的也許會好懂一些 國內不少論壇都存在跨站指令碼漏洞,例如 這裡 有乙...
PHP和XSS跨站攻擊
其實這個話題很早就想說說了,發現國內不少php站點都有xss漏洞。今天偶然看到php5的 乙個xss漏洞,在此小結一下。順便提醒,使用php5的朋友最好打下補丁,或者公升級一下。如果你不懂什麼是xss,可以看 這裡,或者 這裡 中文的也許會好懂一些 國內不少論壇都存在跨站指令碼漏洞,例如 這裡 有乙...