인터넷의 빠른 개발로 SMS 검증 코드는 웹 사이트 또는 응용 프로그램에서 일반적인 보안 검증 방법이되었습니다. 검증 코드가 남용되는 것을 방지하기 위해 검증 코드의 유효 기간을 설정하는 것은 사용자 개인 정보 및 계정 보안을 보호하기위한 중요한 조치가되었습니다. 이 기사에서는 PHP를 사용하여 SMS 검증 코드의 자동 만료 검증을 실현하여 검증 코드가 지정된 시간 내에 유효한지 확인하는 방법을 소개합니다.
먼저, 휴대폰 번호, 검증 코드, 생성 시간 및 만료 시간과 같은 검증 코드와 관련된 정보를 저장하기 위해 데이터베이스 테이블을 설계해야합니다. 간단한 테이블 구조 설계는 다음과 같습니다.
테이블 생성 sms_verification (<br> id int (11) null auto_increment,<br> 전화 varchar (20) null,<br> 코드 varchar (6) NULL,<br> generate_time int (11) NOT NULL,<br> expiry_time int (11) NOT NULL,<br> 기본 키 (ID)<br> ) 엔진 = innodb 기본 charset = utf8;
사용자가 SMS 확인 코드를 보내도록 요청하면 임의의 검증 코드를 생성하여 데이터베이스에 저장하고 생성 시간 및 만료 시간을 기록해야합니다. 다음은 샘플 코드입니다.
함수 sendsmsVerificationCode ($ 폰) {<br> // 임의의 검증 코드를 생성합니다<br> $ code = rand (100000, 999999);<br> $ generateTime = time ();<br> $ expirytime = $ generateTime + 600; // 유효성 코드는 10 분 동안 유효합니다<br><br> // 확인 코드 정보를 데이터베이스에 저장합니다<br> $ sql = "sms_verification에 삽입 (전화, 코드, generate_time, expiry_time) 값 ( '$ phone', '$ code', '$ generateTime', '$ expiryTime')";<br> // 데이터베이스 삽입 작업 수행 (SQL 주입을 방지하려면 PDO를 사용)<br> // ...<br><br> // SMS 확인 코드를 보냅니다<br> // ...<br><br> 반환 $ 코드;<br> }
사용자가 확인을 위해 확인 코드를 제출하면 확인 코드가 정확 할뿐만 아니라 만료되지 않은지 확인해야합니다. 다음은 해당 코드 구현입니다.
함수 verifysmsVerificationCode ($ 전화, $ 코드) {<br> // 데이터베이스에서 확인 코드 정보를 쿼리합니다<br> $ sql = "select * from sms_verification where 전화 = '$ 전화'generate_time desc 한계 1";<br> // 쿼리 작업 수행 (PDO를 사용하여 SQL 주입을 방지)<br> // ...<br><br> // 쿼리 결과를 얻습니다<br> $ verificationInfo = $ stmt-> fetch (pdo :: fetch_assoc);<br><br> // 확인 코드 정보가 비어 있으면 확인 코드가 유효하지 않습니다.<br> if (! $ verificationInfo) {<br> 거짓을 반환합니다.<br> }<br><br> // 확인 코드가 만료되었는지 확인하십시오<br> if (time ()> $ verificationInfo [ 'expiry_time']) {<br> 거짓을 반환합니다.<br> }<br><br> // 확인 코드가 일치하는지 확인합니다<br> if ($ code! = $ verificationInfo [ 'code']) {<br> 거짓을 반환합니다.<br> }<br><br> // 확인이 전달되고 확인 코드 정보를 삭제합니다<br> $ sql = "sms_verification에서 삭제 된 id = {$ verificationInfo [ 'id']}";<br> // 삭제 작업을 수행합니다<br> // ...<br><br> 진실을 반환하십시오.<br> }
실제 적용에서는 일부 비정상적인 상황을 고려해야합니다. 예를 들어, 데이터베이스 작동이 실패하고, SMS 인터페이스 호출이 실패한 등. 또한 보안을 향상시키기 위해 검증 코드의 전송 빈도 한계 및 검증 코드 오류 수와 같은 메커니즘을 추가 할 수 있습니다.
PHP를 통해 SMS 검증 코드의 자동 만료 검증 구현은 응용 프로그램 보안을 개선하는 효과적인 방법입니다. 데이터베이스 테이블 구조의 합리적인 설계 및 적절한 PHP 코드 로직과 결합하면 유효성 기간 내에 검증 코드가 검증되고 효과적으로 남용을 방지 할 수 있습니다. 이러한 조치를 통해 사용자 계정의 보안 및 개인 정보 보호를 개선 할 수 있습니다.