>백엔드 개발 >PHP 튜토리얼 >PHP를 사용하여 인간-기계 확인 코드를 구현하는 방법

PHP를 사용하여 인간-기계 확인 코드를 구현하는 방법

WBOY
WBOY원래의
2023-06-27 11:58:361649검색

인간-기계 인증코드는 일반적으로 사용되는 인증코드 형태로, 악성 로봇 공격 및 악성 등록을 효과적으로 방지할 수 있습니다. 서버 측 언어로서 PHP는 인간-기계 확인 코드 기능을 구현하는 데 매우 적합합니다. 이번 글에서는 PHP를 이용하여 인간-기계 검증 코드를 구현하는 방법을 소개하겠습니다.

  1. 인증코드 이미지 생성
    먼저 인증코드 이미지를 생성해야 합니다. 이 프로세스는 GD 라이브러리를 사용하여 수행할 수 있습니다. GD 라이브러리는 다양한 유형의 이미지를 생성하고 조작하는 데 사용할 수 있는 오픈 소스 이미지 처리 라이브러리입니다. PHP에서는 GD 확장을 설치하여 사용할 수 있습니다.

다음은 인증코드 이미지 생성을 위한 코드 예시입니다.

<?php
session_start();
$code = rand(1000, 9999);
$_SESSION["code"] = $code;
$width = 100;
$height = 50;
$image = imagecreatetruecolor($width, $height);
$textColor = imagecolorallocate($image, 0, 0, 0); //设置文本颜色
$bgColor = imagecolorallocate($image, 255, 255, 255); //设置背景颜色
imagefilledrectangle($image, 0, 0, $width, $height, $bgColor); //绘制矩形背景

//绘制验证码字符串
$font = 'arial.ttf'; //字体
$fontSize = 24; //字体大小
$x = 20; //x轴位置
$y = 30; //y轴位置
for ($i = 0; $i < 4; $i++) {
    $char = substr(str_shuffle("ABCDEFGHJKMNPQRSTUVWXYZ23456789"), 0, 1);
    imagettftext($image, $fontSize, rand(-15, 15), $x, $y, $textColor, $font, $char);
    $x += 20;
}

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

이 코드는 서버 측에서 인증코드 이미지를 생성하고 이를 브라우저에 출력하여 표시합니다.

  1. 사용자 입력 확인
    다음으로 사용자 입력이 올바른지 확인해야 합니다. 인증코드 생성 시 세션에 인증코드를 저장해 두었습니다. 따라서 사용자가 입력을 제출한 후 사용자가 입력한 인증 코드와 세션에 저장된 인증 코드를 비교할 수 있습니다.

다음은 사용자 입력을 확인하는 코드 예입니다.

<?php
session_start();
if($_POST["code"] != $_SESSION["code"]) {
    echo "验证码输入错误";
} else {
    echo "验证码输入正确";
}
?>

이 코드는 사용자가 제출한 인증 코드가 세션에 저장된 인증 코드와 동일한지 확인하는 코드입니다. 동일하지 않으면 오류 메시지가 출력됩니다. 동일하면 사용자 입력이 올바른 것입니다.

  1. Embedded into the form
    마지막으로 인간-기계 인증 코드를 양식에 삽입해야 합니다. 악의적인 공격자가 인증코드를 입력하지 않고 직접 양식을 제출하는 것을 방지하기 위해서는 인증코드 생성 스크립트와 양식을 동일한 페이지에 표시하고 제출 후 검증해야 합니다.

다음은 인간-기계 확인 코드를 양식에 삽입하는 코드 예제입니다.

<form method="post" action="verify.php">
    <p>用户名:</p>
    <input type="text" name="username">
    <p>密码:</p>
    <input type="password" name="password">
    <p>验证码:</p>
    <input type="text" name="code">
    <img src="code.php" alt="验证码">
    <input type="submit" value="提交">
</form>

이 코드는 양식에 이미지를 추가하여 확인 코드를 표시합니다. 사용자는 양식을 제출하려면 이미지에 표시된 인증 코드를 입력해야 합니다. 제출 버튼을 클릭하면 양식이 확인 스크립트 코드로 이동하여 확인을 수행합니다.

요약
이 글에서는 PHP를 사용하여 인간-기계 인증 코드를 구현하는 방법을 소개합니다. 인증코드 이미지를 생성하여 Session에 저장함으로써 악의적인 공격 및 등록을 효과적으로 방지할 수 있습니다. 양식에 인간-기계 확인 코드를 삽입하면 웹사이트 보안과 사용자 경험을 효과적으로 향상시킬 수 있습니다.

위 내용은 PHP를 사용하여 인간-기계 확인 코드를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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