CAPTCHA JavaScript API 사용
이 섹션에서는 CAPTCHA 통합 API 사용에 대한 지침을 제공합니다.
CAPTCHA JavaScript API를 사용하면 CAPTCHA 퍼즐을 구성하고 클라이언트 애플리케이션에서 원하는 위치에 배치할 수 있습니다. 이 API는 지능형 위협 JavaScript API 기능을 활용하여 최종 사용자가 CAPTCHA 퍼즐을 성공적으로 완료한 후 AWS WAF 토큰을 획득하고 사용합니다.
먼저 테스트 환경에서 JavaScript 통합을 구현한 다음 프로덕션 환경에서 구현합니다. 추가 코딩 지침은 다음 섹션을 참조하세요
CAPTCHA 통합 API를 사용하려면
API 설치
AWS Management Console에 로그인하여 https://console.aws.amazon.com/wafv2/
에서 AWS WAF 콘솔을 엽니다. -
탐색 창에서 애플리케이션 통합을 선택합니다. 애플리케이션 통합 페이지에서 탭으로 구분된 옵션을 볼 수 있습니다.
CAPTCHA 통합을 선택합니다.
통합에 사용할 나열된 JavaScript 통합 스크립트 태그를 복사합니다.
애플리케이션 페이지 코드의
<head>
섹션에 복사한 스크립트 태그를 삽입합니다. 이 포함으로 CAPTCHA 퍼즐을 구성 및 사용할 수 있게 됩니다.<head> <script type="text/javascript" src="
integrationURL
/jsapi.js" defer></script> </head>이
<script>
목록은defer
속성으로 구성되지만 페이지에 다른 동작을 적용하려는 경우 설정을async
로 변경할 수 있습니다.또한 CAPTCHA 스크립트는 지능형 위협 통합 스크립트가 아직 없는 경우 자동으로 로드합니다. 지능형 위협 통합 스크립트는 클라이언트 애플리케이션이 페이지 로드 시 백그라운드에서 토큰을 자동으로 검색하도록 하고 CAPTCHA API 사용에 필요한 기타 토큰 관리 기능을 제공합니다.
-
(선택 사항) 클라이언트 토큰용 도메인 구성 추가 - 기본적으로 AWS WAF는 토큰을 생성할 때 웹 ACL과 연결된 리소스의 호스트 도메인을 사용합니다. JavaScript API에 추가 도메인을 제공하려면 토큰에 사용할 도메인 제공의 지침을 따르십시오.
클라이언트의 암호화된 API 키 가져오기 - CAPTCHA API에는 유효한 클라이언트 도메인 목록이 포함된 암호화된 API 키가 필요합니다. AWS WAF는 이 키를 사용하여 통합에 사용 중인 클라이언트 도메인이 AWS WAF CAPTCHA를 사용하도록 승인되었는지 확인합니다. API 키를 생성하려면 JS CAPTCHA API의 API 키 관리의 지침을 따르십시오.
-
CAPTCHA 위젯 구현 코딩 - 페이지 내
renderCaptcha()
API 호출을 사용할 위치에서 호출을 구현합니다. 이 함수의 구성 및 사용에 대한 자세한 내용은 CAPTCHA JavaScript API 사양 및 CAPTCHA 퍼즐을 렌더링하는 방법 섹션을 참조하세요.CAPTCHA 구현은 지능형 위협 통합 API와 통합되어 토큰을 관리하고 AWS WAF 토큰을 사용하는 가져오기 호출을 실행합니다. 이러한 API 사용에 대한 지침은 지능형 위협 JavaScript API 사용 섹션을 참조하세요.
웹 ACL에 토큰 확인 추가 - 클라이언트가 보내는 웹 요청에서 유효한 CAPTCHA 토큰이 있는지 확인하는 하나 이상의 규칙을 웹 ACL에 추가합니다. AWS WAF에서 CAPTCHA 및 Challenge 사용에 설명된 대로 CAPTCHA 규칙 작업을 사용하여 확인할 수 있습니다.
웹 ACL 추가는 보호된 엔드포인트에 대한 요청에 클라이언트 통합에서 획득한 토큰이 포함되어 있는지 확인합니다. 유효하고 만료되지 않은 CAPTCHA 토큰을 포함하는 요청은 CAPTCHA 규칙 작업 검사를 통과하므로 최종 사용자에게 또 다른 CAPTCHA 퍼즐을 제시하지 않습니다.
JavaScript API를 구현한 후 CAPTCHA 퍼즐 시도 및 솔루션에 대한 CloudWatch 지표를 검토할 수 있습니다. 지표 및 차원 세부 정보는 계정 지표 및 차원 섹션을 참조하세요.