> 백엔드 개발 > PHP 튜토리얼 > PHP의 PRG(Post-Redirect-Get) 패턴은 데이터 복제 및 CSRF 공격을 어떻게 방지합니까?

PHP의 PRG(Post-Redirect-Get) 패턴은 데이터 복제 및 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 PRG(Post-Redirect-Get) 코드 예제

PHP에서 PRG 패턴을 구현할 때 올바른 단계를 따르는 것이 중요합니다. 페이지 새로고침 및 뒤로 버튼 문제로부터 보호합니다. 기본 구현을 살펴보겠습니다.

코드에서:

  1. 양식은 유효성 검사 스크립트(validate.php)에 제출됩니다.
  2. validate.php는 입력하고 이를 데이터베이스에 저장하거나 적절한 오류 메시지를 생성합니다.
  3. 생성된 HTML(확인 페이지 또는 오류 페이지)은 다음 위치에 저장됩니다. $_SESSION 변수.
  4. validate.php는 헤더('위치: <적절한>')를 사용하여 사용자를 submit.php 또는 valid_input.php 페이지로 리디렉션합니다.
  5. 대상 페이지에는 $_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();
    }
}
로그인 후 복사

CMS 시스템과의 호환성을 위해 PHP_SELF 대신 REQUEST_URI를 사용해야 한다는 점을 기억하세요. PHP_SELF가 다른 스크립트(예: index.php)로 리디렉션될 수 있는 프레임워크.

위 내용은 PHP의 PRG(Post-Redirect-Get) 패턴은 데이터 복제 및 CSRF 공격을 어떻게 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿