2011-07-04 117 views
5

關於preventing CSRF的信息有很多。csrf保護

但我只是不明白:爲什麼我不能僅僅解析目標頁面表單中的csrf標記並將其與我的僞造請求一起提交?

回答

0

由於CSRF令牌的值未預先知道。

1

如果您能夠將腳本代碼注入目標頁面(XSS),那麼是的,您可以這樣做,從而使CSRF預防無用。

CSRF令牌必須存儲在最終用戶收到的頁面(或者他也不會知道它)。事實上,在安全評估中,XSS通常不會評估自身的潛在傷害,而是僅僅評估其在這種攻擊中的使用。

0

CSRF令牌應該是每個用戶的每個時間和每個請求一個完全不同的令牌,所以它永遠不會被攻擊者猜到。

對於php,.net和javascript有一個在OWASP CSRFGuard Project看看 - 如果你正在使用java和jsf 2.x它已經保存對CSRF(只要你使用POST而不是GET - 爲此你將有等待JSF 2.2)否則,如果你在沒有JSF的情況下工作,OWASP ESAPI的HTTPUtillities Interface也可能非常有幫助!

1

CSRF攻擊是盲目的。他們進行會話騎行,攻擊者無法直接控制,除非他可以通過XSS漏洞提取令牌。通常可以使用會話寬度令牌。每個請求旋轉令牌可能是一種矯枉過正的行爲,並可能導致錯誤警報。我更喜歡使用主會話令牌爲每個資源使用令牌。