안녕하세요.
기존 캡챠 기능을 전면 재설계하여
DXCMS 캡챠 시스템으로 업데이트되었습니다.
이번 개선은 단순한 UI 변경이 아닌,
보안성과 확장성을 동시에 고려한 구조 개편에 초점을 맞추었습니다.
■ 주요 변경 사항
먼저, 캡챠 시스템이 드라이버 기반 구조로 완전히 재설계되었습니다.
기존에는 단일 방식으로 동작하던 캡챠가
이제는 환경과 목적에 따라 다양한 방식으로 확장 가능한 구조로 변경되었습니다.
기본 제공 드라이버는 다음과 같습니다.
- Built-in 이미지 캡챠 (기본 내장형)
- reCAPTCHA v2
- reCAPTCHA v3
- hCaptcha
- Cloudflare Turnstile
이를 통해 서비스 성격에 맞게
보안 강도와 사용자 편의성을 유연하게 선택할 수 있습니다.
■ 완전한 하위 호환 유지
기존에 사용하시던 코드 역시 그대로 동작합니다.
DxCaptcha::render('register');
DxCaptcha::verify($_POST, 'register');
뿐만 아니라, 이전 방식인 문자열 기반 검증도 그대로 지원됩니다.
즉, 기존 프로젝트는 수정 없이도 즉시 사용 가능하며,
점진적으로 새로운 구조로 전환할 수 있도록 설계되었습니다.
■ 자동 드라이버 처리 및 안정성 강화
선택된 캡챠 드라이버가 사용할 수 없는 환경일 경우,
시스템이 자동으로 내장 캡챠(builtin)로 폴백 처리됩니다.
이를 통해 외부 API 장애 또는 설정 오류 상황에서도
서비스가 중단되지 않도록 안정성을 확보하였습니다.
■ 이미지 생성 및 보안 강화
내장 캡챠는 다음과 같은 방식으로 강화되었습니다.
- 난수 기반 문자열 생성
- 라인 노이즈 및 점 노이즈 추가
- 웨이브 왜곡 처리
- 문자 랜덤 배치 및 스케일링
또한 GD 라이브러리가 없는 환경에서는
자동으로 수학 문제(SVG 기반)로 대체되어
어떤 환경에서도 캡챠 기능이 동작하도록 설계되었습니다.
■ 개발자 확장 기능
이번 버전에서는 개발자를 위한 확장 구조도 함께 제공됩니다.
dx_captcha_drivers 훅을 통해
외부 캡챠 시스템을 자유롭게 추가할 수 있습니다.
dx_add_hook('dx_captcha_drivers', function() {
DxCaptcha::registerDriver(
'my_captcha',
'MyCaptchaDriver',
__DIR__ . '/MyCaptchaDriver.php'
);
});
이를 통해 기업 환경이나 특정 요구사항에 맞는
커스텀 보안 시스템 구축이 가능합니다.
■ 호환성
- PHP 5.6 ~ 8.x 완전 지원
- Apache / Nginx / IIS 환경 대응
- Windows / Linux 서버 모두 호환
어떤 환경에서도 동일하게 동작하도록 설계되었습니다.
■ 마무리
이번 캡챠 시스템은 단순한 기능 개선을 넘어
DXCMS의 보안 구조를 한 단계 확장하는 기반이 되는 업데이트입니다.
앞으로도 DXCMS는
실제 운영 환경에서 신뢰할 수 있는 구조를 목표로
지속적으로 발전해 나가겠습니다.
사용 중 불편한 점이나 개선 사항은
자유게시판 및 Q&A를 통해 언제든지 남겨주시기 바랍니다.
꼼꼼히 검토하여 적극 반영하도록 하겠습니다.
감사합니다.