>백엔드 개발 >PHP 튜토리얼 >PHP 양식에 토큰 확인 메커니즘을 추가하는 방법

PHP 양식에 토큰 확인 메커니즘을 추가하는 방법

王林
王林원래의
2023-06-24 16:54:071130검색

웹 개발에서 양식은 사용자와 서버 간의 중요한 통신 채널입니다. 보안을 보장하려면 양식을 제출할 때 악의적인 공격자의 공격을 피하기 위해 토큰 확인 메커니즘을 추가해야 합니다.

토큰 확인의 기본 원칙은 서버가 임의의 숫자를 생성하고 양식에 숨겨진 필드를 추가하여 토큰을 클라이언트에 전달하는 것입니다. 토큰은 서버로 다시 전송됩니다. 토큰의 정확성을 확인합니다. 일치하면 양식 제출을 허용하고, 그렇지 않으면 제출을 거부합니다.

아래에서는 PHP에서 토큰 확인 메커니즘을 구현하는 방법을 소개합니다.

  1. 양식에 숨겨진 필드 추가

PHP의 rand() 함수를 사용하여 토큰으로 임의의 숫자를 생성한 다음 양식의 숨겨진 필드에 토큰을 추가할 수 있습니다.

<?php
$token = rand(); //生成随机数作为Token
?>
<form action="submit.php" method="post">
  <input type="hidden" name="token" value="<?php echo $token; ?>">
  <!-- 其他表单元素 -->
  <button type="submit">提交</button>
</form>
  1. Verify Token

양식이 제출된 후 양식에 있는 토큰이 올바른지 확인해야 합니다. 서버 세션에 토큰을 저장하고 양식으로 제출된 토큰을 세션에 저장된 토큰과 비교할 수 있습니다. 코드는 다음과 같습니다.

<?php
session_start(); // 开启session
$token = $_POST['token']; //获取表单提交的Token值
if ($token === $_SESSION['token']) { //判断Token是否匹配
  // ... 其他操作
} else {
  echo 'Token验证失败';
}
?>

참고: 각 양식 제출 및 확인이 성공한 후에는 새 토큰을 만들고 세션에 저장된 토큰 값을 업데이트합니다. 이를 통해 반복적인 양식 제출과 악의적인 공격을 방지할 수 있습니다.

<?php
session_start(); // 开启session

// 验证Token
if ($_POST['token'] !== $_SESSION['token']) {
  die('Token验证失败');
}

// 更新Token
$_SESSION['token'] = rand();
// ... 其他操作
?>

이러한 방식으로 우리는 토큰 확인 메커니즘을 PHP 양식에 성공적으로 추가하고 웹사이트의 보안을 향상시켰습니다.

위 내용은 PHP 양식에 토큰 확인 메커니즘을 추가하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.