ThinkPHP6에서 Captcha 기술 사용

王林
풀어 주다: 2023-06-21 09:10:57
원래의
2222명이 탐색했습니다.

인터넷의 대중화와 함께 인증 코드 기술은 웹사이트와 애플리케이션에 대한 일상적인 보호 방법이 되었습니다. CAPTCHA는 악의적인 로봇과 크롤러가 웹사이트와 애플리케이션을 공격하는 것을 방지하여 사용자 정보와 개인정보의 보안을 보장합니다. ThinkPHP6에는 보안문자(Captcha) 기술이 내장되어 있으며 간단한 구성과 호출을 통해 인증코드 기능을 쉽게 구현할 수 있습니다.

1. Captcha 기본 소개

Captcha는 사용자가 로그인하거나 양식을 제출할 때 무작위로 생성된 이미지를 사용자에게 표시하고, 사용자가 인증 코드를 입력하도록 하는 것을 원칙으로 합니다. 이미지 작업을 계속하세요. 이 기술은 악의적인 공격과 자동화된 봇이 웹 사이트나 애플리케이션을 손상시키는 것을 크게 방지할 수 있습니다. 일반적인 보안 문자 기술에는 숫자, 문자 또는 문자와 숫자의 조합, 음성 인증 코드, 슬라이딩 인증 코드 등이 포함됩니다.

2. ThinkPHP6에 내장된 Captcha 기술을 사용하세요

ThinkPHP6에는 인증코드 기능을 쉽게 구현할 수 있는 Captcha 클래스가 내장되어 있습니다. 보안 문자 기술은 GD 라이브러리 및 세션 메커니즘을 기반으로 구현되며 숫자와 문자의 임의 이미지를 생성할 수 있습니다. 사용하기 전에 GD 라이브러리가 서버에 설치되어 활성화되어 있는지 확인해야 합니다.

  1. 구성 파일 설정

먼저 구성 파일 config/app.php에서 인증 코드의 자릿수, 인증 코드의 너비와 높이 등을 포함하여 Captcha 관련 구성을 설정해야 합니다. . 구성은 다음과 같습니다.

'captcha'    => [
        // 验证码位数
        'length'   => 4,
        // 验证码图片宽度
        'width'    => 150,
        // 验证码图片高度
        'height'   => 50,
        // 验证码过期时间(秒)
        'expire'   => 1800,
        // 是否使用中文验证码
        'useZh'    => false,
        // 是否使用算术验证码
        'math'     => false,
        // 是否使用背景图
        'useImgBg' => false,
    ],
로그인 후 복사

위 구성에서 주의해야 할 점은 다음과 같습니다.

길이: 필요에 따라 설정할 수 있는 인증 코드 자리 수

너비 및 높이: 너비 및 높이 필요에 따라 설정할 수 있는 인증 코드 이미지

expire: 인증 코드의 만료 시간(초). 설정된 시간이 지나면 인증 코드가 무효화됩니다.

useZh: 중국어 사용 여부; 인증 코드;

수학: 산술 인증 코드 사용 여부, 즉 간단한 덧셈과 뺄셈 합법적인 연산입니다.

useImgBg: 배경 이미지 사용 여부, 인증 코드 배경으로 사진을 추가할 수 있습니다.

  1. 컨트롤러 작성

컨트롤러에서 Captcha 클래스를 호출하여 인증코드를 생성하여 페이지에 표시하는 동시에 세션에 인증코드를 저장하여 인증입력 여부를 확인해야 합니다. 코드가 정확합니다. 컨트롤러 코드는 다음과 같습니다.

use thinkcaptchaacadeCaptcha;

class Index extends BaseController
{
    public function captcha()
    {
        return Captcha::create();
    }
}
로그인 후 복사

위 코드에서는 ThinkPHP6의 정적 호출 메서드를 사용하여 Captcha::create() 메서드를 통해 직접 인증 코드를 생성했습니다. 생성된 인증 코드는 템플릿의 태그를 사용하여 직접 표시할 수 있는 바이너리 이미지 스트림을 반환합니다.

  1. 페이지 표시

마지막으로 페이지에 태그를 사용하여 생성된 인증 코드를 표시하고, 양식이 제출될 때 인증 코드를 서버에 전달해야 합니다. 코드는 다음과 같습니다.

<form action="submit" method="POST">
    <!-- 显示验证码 -->
    <img src="<?php echo url('/index/captcha'); ?>" onclick="this.src=this.src+'?'+Math.random();" />
    <!-- 输入验证码 -->
    <label for="verifyCode">验证码:</label>
    <input type="text" name="verifyCode" />
    <button type="submit">提交</button>
</form>
로그인 후 복사

위 코드에서는 url() 함수를 사용하여 Captcha URL 주소를 생성하고 onclick 이벤트를 통해 인증 코드 재생성을 트리거합니다. 인증코드 입력란의 이름은 서버에서 처리하는 인증코드의 이름과 일치해야 서버가 사용자가 입력한 인증코드 값을 정확하게 얻을 수 있습니다.

3. 요약

Captcha 기술은 웹사이트와 애플리케이션에 대한 전통적인 보호 방법이 되었습니다. ThinkPHP6에 내장된 Captcha 클래스를 사용하면 인증 코드 기능을 쉽게 구현할 수 있습니다. 사용하기 전에 GD 라이브러리가 서버에 설치되어 열려 있는지 확인하고 보안 문자 구성 파일에 대한 관련 설정을 지정해야 합니다. 마지막으로 페이지에 인증 코드를 표시하고, 양식 제출 시 사용자가 입력한 인증 코드 값을 서버에 전달하여 인증해야 합니다.

위 내용은 ThinkPHP6에서 Captcha 기술 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!