$_SESSION['CSRFToken'] = base64_encode(random_bytes(32));

운영자 | 기사입력 2026/07/20 [14:40]
PHP >
필자의 다른기사 보기 인쇄하기 메일로 보내기 글자 크게 글자 작게
$_SESSION['CSRFToken'] = base64_encode(random_bytes(32));
 
운영자   기사입력  2026/07/20 [14:40]
 $_SESSION['CSRFToken'] = base64_encode(random_bytes(32));

 

session_start();

 

if (

    !isset($_POST['CSRFToken']) ||

    !hash_equals($_SESSION['CSRFToken'], $_POST['CSRFToken'])

) {

    die('CSRF Token Error');

}

 

<?php

session_start();

 

if (empty($_SESSION['CSRFToken'])) {

    $_SESSION['CSRFToken'] = bin2hex(random_bytes(32));

}

?>

 

<form action="transfer.php" method="post">

    <input type="hidden" name="CSRFToken" value="<?= htmlspecialchars($_SESSION['CSRFToken'], ENT_QUOTES) ?>">

    <input type="text" name="name">

    <input type="submit" value="전송">

</form>

 

<?php

session_start();

 

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {

    exit('잘못된 접근입니다.');

}

 

// 토큰 존재 여부 확인

if (!isset($_POST['CSRFToken']) || !isset($_SESSION['CSRFToken'])) {

    exit('CSRF Token이 없습니다.');

}

 

// 토큰 비교

if (!hash_equals($_SESSION['CSRFToken'], $_POST['CSRFToken'])) {

    exit('CSRF Token이 일치하지 않습니다.');

}

 

// 1회용 토큰이면 삭제

unset($_SESSION['CSRFToken']);

 

// 정상 처리

echo "정상 요청입니다.";

트위터 트위터 페이스북 페이스북 카카오톡 카카오톡
기사입력: 2026/07/20 [14:40]  최종편집: ⓒ iwav
 
 
PHP 많이 본 기사