PHP Post-Redirect-Get (PRG) コード例
PHP で PRG パターンを実装する場合は、正しい手順に従うことが重要ですページのリロードと戻るボタンの問題から確実に保護します。基本的な実装を見てみましょう:
コード内:
このアプローチでは、 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 が別のスクリプト (index.php など) にリダイレクトされる可能性がある CMS システムおよびフレームワークとの互換性を確保します。
以上がPHP の Post-Redirect-Get (PRG) パターンはデータの重複と CSRF 攻撃をどのように防ぐのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。