首頁 > 後端開發 > php教程 > PHP 的 Post-Redirect-Get (PRG) 模式如何防止資料重複和 CSRF 攻擊?

PHP 的 Post-Redirect-Get (PRG) 模式如何防止資料重複和 CSRF 攻擊?

Patricia Arquette
發布: 2024-12-17 04:50:25
原創
944 人瀏覽過

How Does PHP's Post-Redirect-Get (PRG) Pattern Prevent Data Duplication and CSRF Attacks?

PHP Post-Redirect-Get (PRG) 程式碼範例

在PHP 中實現PRG 模式時,遵循正確的步驟至關重要確保防止頁面重新載入和後退按鈕問題。讓我們來探索一下基本實作:

在您的程式碼中:

  1. 表單提交給驗證腳本 (validate.php)。
  2. validate.php 驗證輸入並將其儲存在資料庫中或產生適當的錯誤訊息。
  3. 產生的 HTML(確認頁面或錯誤頁)儲存在$_SESSION 變數。
  4. validate.php 然後使用 header('Location:
  5. ') 將使用者重新導向到 Submitted.php 或 invalid_input.php 頁面。
  6. 目標頁面顯示 $_SESSION 變數中儲存的 HTML。

這種方法提供了一種簡單有效的解決方案來應對 CSRF 攻擊並防止意外的重新提交或資料重複。

最簡單的PRG 場景

對於簡化的PRG 實現,您可以使用以下程式碼片段:
if ($_POST) {
    // Validate the input
    
    if (/* input is OK */) {
        // Execute code (database updates, etc.)
        
        // Redirect to the same page
        header("Location: {$_SERVER['REQUEST_URI']}", true, 303);
        exit();
    }
}
登入後複製

請記住使用REQUEST_URI而非PHP_SELF,以與PHP_SELF 所在的CMS系統和框架相容可能會重定向到不同的腳本(例如,index.php)。

以上是PHP 的 Post-Redirect-Get (PRG) 模式如何防止資料重複和 CSRF 攻擊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板