我試圖從CSRF保護一個應用程序(PHP和大量的JS)。反CSRF令牌和Javascript
我想使用令牌。
很多操作用AJAX做,所以我必須通過JavaScript中的令牌。 如果我想爲每個會話或每頁加載生成1個令牌,那麼很簡單 - 我生成新的令牌,將它放在DOM中的某個位置,然後用Javascript找到併發送給處理端。
但是,如果我想使用新的令牌每個操作呢? 我在考慮做一個ajax調用重新生成令牌,然後將結果傳遞給處理頁面。
這會增加安全風險嗎? 我在想引誘用戶到頁面的腳本,它會詢問令牌,然後用它來發出請求,但是再次跨域Javascript是禁止的。 可以用閃光燈完成嗎?
也許對於保護Ajax調用從CSRF另一種方法?
謝謝!
添加一個自定義http標題困擾我,我敢肯定,你可以僞造自定義http標題與閃光和發射一個請求到另一臺服務器,只要標題元素不在黑名單中。我查看了近期對閃存的更改(在過去3個月內),並且他們修復了控制「跨站點文件上傳」攻擊所需的整個POST段的能力。除此之外,我認爲它的好信息,我給你+1。 – rook 2010-09-08 19:13:26
是的,這裏是黑名單,當然引用者是不允許的,但從字面上看,其他的都是。 http://kb2.adobe.com/cps/403/kb403030.html – rook 2010-09-08 19:15:18
@The Rook - Re。添加自定義標題 - 請參閱http://www.adobe.com/devnet/flashplayer/articles/flash_player_10_security.pdf。具體來說,請參閱標題爲「標題發送權限」的部分。我引用'當SWF文件希望將自定義HTTP標頭髮送到其自己的主機以外的任何位置時,發送請求的HTTP服務器上必須有一個策略文件。記住http://stackoverflow.com/questions/2609834/gwt-rpc-does-it-do-enough-to-protect-against-csrf?這就是我瞭解這個事實的難處。 – 2010-09-08 19:25:47