중요합니다
Azure Web Application Firewall JavaScript 챌린지는 현재 미리 보기로 제공됩니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.
Azure Front Door 및 Azure Application Gateway의 Azure WAF( Web Application Firewall)는 고급 봇 보호를 위한 완화 옵션 중 하나로 JavaScript 챌린지 기능을 제공합니다. Azure Front Door의 경우 프리미엄 버전에서 사용자 지정 규칙 집합과 Bot Manager 1.x 규칙 집합의 동작으로 사용할 수 있습니다.
JavaScript 챌린지는 합법적인 사용자와 봇을 구분하는 데 사용되는 보이지 않는 웹 챌린지입니다. 악성 봇은 챌린지에 실패하며, 이를 통해 웹 애플리케이션이 보호됩니다. 또한 JavaScript 챌린지는 사람의 개입이 필요하지 않으므로 합법적인 사용자에 대한 마찰을 줄여주는 이점이 있습니다.
작동 방식
JS 챌린지가 Azure WAF에서 활성화되고 클라이언트의 HTTP 요청이 특정 규칙과 일치하면 클라이언트에 Microsoft JS 챌린지 페이지가 표시됩니다. 사용자의 브라우저에서 챌린지를 계산하는 동안 몇 초 동안 이 페이지가 표시됩니다. Azure WAF에서 유효성을 검사 받으려면 이 페이지에서 클라이언트의 브라우저가 JavaScript 챌린지를 성공적으로 계산해야 합니다. 계산에 성공하면 WAF는 요청을 봇이 아닌 클라이언트로 확인하고 나머지 WAF 규칙을 실행합니다. 챌린지를 성공적으로 계산하지 못한 요청은 차단됩니다.
CORS(원본 간 리소스 공유) 요청은 액세스를 시도할 때마다 챌린지가 제시됩니다. 따라서 클라이언트가 챌린지를 호스팅하는 도메인과 다른 도메인에서 JavaScript 챌린지를 트리거하는 페이지에 액세스하는 경우 클라이언트는 이전에 챌린지를 통과했더라도 다시 챌린지에 직면합니다.
또한 클라이언트가 JavaScript 챌린지를 풀더라도 클라이언트의 IP 주소가 변경되면 챌린지가 다시 발급됩니다.
다음은 JavaScript 챌린지 페이지 예입니다.
만료
WAF 정책 설정은 JavaScript 챌린지 쿠키 유효 수명을 분 단위로 정의합니다. 수명이 만료되면 사용자에게 챌린지가 제시됩니다. 수명은 5분에서 1,440분 사이의 정수이고 기본값은 30분입니다. JavaScript 챌린지 쿠키 이름은 Azure Front Door에서는 afd_azwaf_jsclearance
, Azure Application Gateway에서는 appgw_azwaf_jsclearance
입니다.
참고 항목
JavaScript 챌린지 만료 쿠키는 챌린지가 성공적으로 완료된 후 사용자 브라우저에 삽입됩니다.
제한 사항
AJAX 및 API 호출은 지원되지 않습니다. JavaScript 챌린지는 AJAX 및 API 요청에 적용되지 않습니다.
POST 본문 크기 제한: POST 본문이 128KB를 초과하는 경우 JavaScript 챌린지를 트리거하는 첫 번째 요청이 차단됩니다.
비 HTML 포함 리소스: JavaScript 챌린지는 HTML 리소스용으로 설계되었습니다. 이미지, CSS, JavaScript 파일 또는 유사한 리소스와 같은 페이지에 포함된 HTML이 아닌 리소스에 대한 문제는 지원되지 않습니다. 그러나 이전에 성공한 JavaScript 챌린지 요청이 있는 경우 이러한 제한 사항이 해제됩니다.
브라우저 호환성: JavaScript 챌린지는 Microsoft Internet Explorer에서 지원되지 않습니다. 최신 버전의 Microsoft Edge, Chrome, Firefox 및 Safari 웹 브라우저와 호환됩니다.
속도 제한은 지원되지 않습니다. Application Gateway의 JavaScript 챌린지 작업은 공개 미리 보기 중에 속도 제한 유형 사용자 지정 규칙에 대해 지원되지 않습니다.