發現正確的方法以PHP形式驗證您的CSRF令牌。了解為什麼正確的檢查可以有效防止CSRF攻擊。 --- This video is based on the question https://stackoverflow.com/q/73312646/ asked by the user 'VCS-Jacob' ( https://stackoverflow.com/u/19530250/ ) and on the answer https://stackoverflow.com/a/73312691/ provided by the user 'Quentin' ( https://stackoverflow.com/u/19068/)在“堆棧溢出”網站上。感謝這些出色的用戶和Stackexchange社區的貢獻。請訪問這些鏈接以獲取原始內容和更多詳細信息,例如備用解決方案,有關主題,評論,修訂歷史記錄等的最新更新/開發。此外,內容(音樂除外)在CC BY-SA https://meta.stackexchange.com/help/licensing授權下,原始問題帖子在“ CC BY-SA 4.0'(https://creativecommons.org/licenses.org/licenses/license/blicense/by-sa/4.0/- sa ccccccccccccccccc)下授權。 https://creativecommons.org/licenses/by-sa/4.0/)許可證。如果您似乎有什麼事,請隨時用vlogize [at] gmail [dot] com寫信給我。 --- PHP中的CSRF代幣驗證:您做對嗎?跨站點請求偽造(CSRF)是一個嚴重的安全威脅,可以損害用戶數據並導致Web應用程序中未經授權的操作。在您的表格中實施適當的CSRF保護對於維持網站的完整性和安全性至關重要。在本指南中,我們將探討圍繞PHP中CSRF代幣驗證的一個常見問題,並對正確的方法提供清晰度。了解CSRF令牌CSRF令牌是為每個用戶會話生成的獨特,秘密和不可預測的價值。然後將該令牌包含在形式中,以確保對服務器提出的請求是真實的,而不是由惡意演員製作的。這是他們工作方式的簡單概述:會話創建:當用戶在您的網站上開始會話時,會在會話中生成並存儲CSRF令牌。形式包含:然後將此令牌包含在形式中作為隱藏的輸入字段。驗證:提交表單後,服務器檢查表單中的令牌是否匹配會話中存儲的一個。令牌驗證的問題以下是一個方案:您已經在PHP表單中實現了CSRF令牌,但是您不確定是否正確設置了驗證邏輯。讓我們分解您當前使用的驗證代碼:[[請參閱視頻以顯示此文本或代碼段]]關鍵問題是條件($ _post ['token']!== $ _session ['token'])有效地驗證CSRF Token嗎?如果您簡化驗證以檢查令牌的存在,會發生什麼?驗證的重要性這是兩個驗證方案的分解:原始驗證方法[[請參閱視頻以顯示此文本或代碼段]]檢查是否存在令牌:第一部分確保令牌以表單提交中存在。與會話令牌匹配:第二部分檢查提交的令牌是否與會話中存儲的一個匹配。好處:此方法是安全的。攻擊者無法預測會話中存儲的有效令牌,從而使他們難以利用您的表格。簡化的驗證方法[[請參閱視頻以顯示此文本或代碼段]]僅檢查存在:此條件僅確保存在令牌,但不能驗證其針對會話令牌的有效性。風險:這可以允許CSRF攻擊。攻擊者可以使用任何令牌提交表格,如果用戶登錄,則可以對請求進行處理,而無需對會話中存儲的有效令牌進行任何檢查。結論原始驗證方法是必要和安全的,因為它驗證了CSRF令牌的存在和準確性。刪除第二條件會使您的應用程序容易受到CSRF攻擊的攻擊,因為它可以使惡意請求不受限制地進行。關鍵要點總是根據會議的存儲值來驗證CSRF令牌。保護您的表格免受CSRF攻擊對於維持網站上的安全性至關重要。通過遵循這些最佳實踐,您將有效地保護Web應用程序免受潛在威脅。如果您對CSRF代幣實施有任何疑問或需要澄清,請隨時在下面的評論部分聯繫!