我通過在PHP的每個表單的隱藏輸入中包含一個令牌來實現CSRF保護。當然,每個令牌只能使用一次。如何在不觸發CSRF保護的情況下更改多少html表單?
但是,有些工具可以改變輸入,例如任何Web開發工具。例如,我可以更改頁面上的輸入表單:我可以啓用禁用複選框,並且可以將輸入框更改爲textarea框,而無需重新加載頁面或類似的東西。 CSRF不會抓住這些變化。
那麼,我需要驗證多少表格才能保證安全?我是否需要驗證每一個輸入以確保它沒有改變,包括選擇,複選框,隱藏輸入等?當然,假設這些沒有被改變是不安全的?
不,你不能確保任何通過'$ _POST'或'進來$ _GET'還沒有被操縱。 – 2013-04-30 16:12:16
永遠不要相信用戶提供的內容。如果一個字段是有效的,那麼驗證它是重要的。例如,一個電子郵件地址可能值得驗證,但一個評論框可能只需要檢查以查看它是否爲空。 – Anigel 2013-04-30 16:18:45