내용
이 섹션에서는 현재 WAF 규칙 세트에 사용할 수있는 모든 설정을 세 개의 탭으로 구성하여 보여줍니다. 글로벌, 규칙 농장. 이 섹션의 변경 사항은 신청 버튼을 클릭합니다.
전역 설정 WAF 규칙 집합
이 구성은 집합에 포함 된 모든 규칙의 동작을 관리합니다.
이름. 규칙을 쉽게 식별할 수 있는 레이블입니다. 규칙 세트의 이름을 지정하기 위해 선택한 레이블은 수정할 수 없습니다.
요청 본문 확인. HTTP 요청의 본문을 분석할지 여부를 설정하는 플래그입니다. 이 플래그가 비활성화되면 본문을 건너뛰고 요청 본문 매개변수와 일치하는 규칙이 처리되지 않습니다.
요청 본문 제한. 본문 요청을 검사하기 위해 저장된 요청 본문의 최대 바이트 수입니다. 이 매개변수의 값이 0이면 WAF는 콘텐츠 길이 크기를 완전히 저장합니다. 제한 값을 설정하는 것이 좋습니다.
응답 본문 확인. HTTP 응답의 본문을 분석할지 여부를 설정하는 플래그입니다. 이 플래그가 비활성화되면 본문을 건너뛰고 응답 본문 매개변수에 대한 규칙 일치가 처리되지 않습니다. 보다 큰 응답 524288 (512KB) 무시됩니다.
기본 작업. 이 선택 상자는 규칙에 해상도가 지정되지 않은 경우 기본 해상도로 사용됩니다. 규칙의 모든 일치 항목이 성공합니다. 다음은 각 작업에 대한 간략한 설명입니다.
- 허용. HTTP 트랜잭션을 완료하기 위해 완료될 때까지 현재 WAF를 처리할 수 있습니다.
- 패스. WAF는 HTTP 트랜잭션을 자르지 않고 다음 규칙을 계속 평가합니다.
- 거부. 현재 HTTP 트랜잭션을 완료합니다. 더 많은 규칙에 대한 평가는 허용되지 않습니다. 규칙이 1단계 또는 2단계(요청 분석)에서 일치하면 요청이 백엔드로 전달되지 않습니다. 3단계 또는 4단계(응답 분석)에서 규칙이 일치하면 응답이 클라이언트에 전달되지 않습니다.
- 리디렉션. HTTP 트랜잭션이 중지되고 HTTP 리디렉션이 클라이언트로 전송됩니다.
리디렉션 URL. 규칙이 일치할 때 클라이언트에 전송되는 URL입니다. 이 URL에는 리디렉션 확인이 설정되어 있습니다.
기본 단계. 이 선택 상자는 규칙에 단계가 지정되지 않은 경우 기본 단계로 사용됩니다. 단계는 WAF 규칙을 후크할 수 있는 HTTP 단계입니다. 다음은 정의된 단계입니다.
- 요청 헤더가 수신 됨. 로드 밸런서가 클라이언트의 모든 요청 헤더를 읽은 후에 규칙이 실행됩니다.
- 요청 본문이 수신되었습니다.. 이 규칙은 클라이언트의 전체 요청 본문이로드 밸런서에 버퍼링 될 때 실행됩니다.
- 응답 독자가 수신되었습니다.. 로드 밸런서가 서버의 모든 응답 헤더를 읽은 후에 규칙이 실행됩니다.
- 응답 본문이 수신되었습니다.. 로드 밸런서가 서버의 전체 응답 본문을 읽을 때 규칙이 실행됩니다.
- 로깅하기 전에. 이 규칙은 WAF 프로세스가 로깅 작업을 완료 할 때 실행됩니다.
기본 로그. 로그 기본 작업입니다. 이 값은 규칙 설정에 로그에 대한 작업이 지정되지 않은 경우 사용됩니다.
로깅만. 이 확인란을 선택하면 집합에 있는 규칙의 해결 매개변수가 실행되지 않습니다. 이 작업 모드는 세트가 실행 중일 때만 사용할 수 있습니다.
규칙 사용 안 함
이러한 테이블은 집합을 수정하지 않고 집합의 비활성화 규칙을 허용합니다.
활성화된 규칙. 현재 세트에서 사용 가능한 규칙 목록입니다. 규칙은 규칙 ID 및 그 설명 매개 변수를 설정합니다.
비활성화 된 규칙. 집합에서 현재 비활성화 된 규칙 목록입니다.
WAF 규칙 목록
또한 규칙 섹션에서는 HTTP 공격을 감지하고 보호하는 WAF 규칙을 만들고 수정할 수 있습니다.
이러한 규칙은 이 화면에 표시된 것과 동일한 순서로 순차적으로 평가되는 지시문입니다. 규칙을 정렬해야 하는 경우 활성화 종류 버튼을 누른 다음 원하는 위치에 끌어다 놓습니다.
규칙에 대한 가능한 매개변수는 아래에 설명되어 있습니다.
ID. 규칙 집합 내에서 규칙을 식별하기 위한 식별자입니다. 이 식별자는 집합의 규칙 위치에 해당합니다.
규칙 ID. 규칙의 고유 식별자입니다. 동일한 규칙 ID를 가진 두 개의 규칙이 포함된 waf 세트에 팜을 연결할 수 없습니다.
설명:. 규칙을 식별하기 위한 설명 메시지입니다. 이 메시지는 성공적인 경기에 기록됩니다.
상. 단계는 규칙이 실행될 HTTP 요청의 단계를 나타냅니다. 가능한 단계는 다음과 같습니다.
- 요청 헤더가 수신 됨. 로드 밸런서가 클라이언트의 모든 요청 헤더를 읽은 후에 규칙이 실행됩니다.
- 요청 본문이 수신되었습니다.. 이 규칙은 클라이언트의 전체 요청 본문이로드 밸런서에 버퍼링 될 때 실행됩니다.
- 응답 독자가 수신되었습니다.. 로드 밸런서가 서버의 모든 응답 헤더를 읽은 후에 규칙이 실행됩니다.
- 응답 본문이 수신되었습니다.. 로드 밸런서가 서버의 전체 응답 본문을 읽을 때 규칙이 실행됩니다.
- 로깅하기 전에. 이 규칙은 WAF 프로세스가 로깅 작업을 완료 할 때 실행됩니다.
해상도. 이 선택 상자는 모든 일치 조건이 달성된 경우 실행하도록 선택된 작업입니다.
- 허용. 이 작업이있는 규칙이 일치하면 (현재 HTTP 트랜잭션의 경우) 더 이상 규칙이 평가되지 않습니다.
- 패스. WAF는 HTTP 트랜잭션을 자르지 않고 다음 규칙을 계속 평가합니다.
- 거부. 현재 HTTP 트랜잭션을 완료합니다. 더 이상 규칙에 대한 평가가 없습니다. 규칙이 1단계 또는 2단계(요청 분석)에서 일치하면 요청이 백엔드로 전달되지 않습니다. 3단계 또는 4단계(응답 분석)에서 규칙이 일치하면 응답이 클라이언트에 전달되지 않습니다.
- 리디렉션. HTTP 트랜잭션이 중지되고 HTTP 리디렉션이 클라이언트로 전송됩니다.
- 기본 작업. 적용하지 않으면 해상도가 설정됩니다. 일반적으로, 그것은 허용 해결
리디렉션 URL. 규칙이 리디렉션을 실행할 경우 클라이언트가 리디렉션되는 URL입니다. 이 매개변수는 해상도 필드에서 리디렉션을 선택하면 나타납니다.
건너뛰기. 모든 일치가 달성되면 규칙은 이 필드에 지정된 규칙 수를 건너뜁니다.
다음 시간 이후 건너뛰기. 모든 일치 항목이 달성되면 규칙이 다른 방화벽 위치로 이동합니다. 규칙은 '표시' 또는 다른 규칙 ID로 이동할 수 있습니다. 규칙 ID는 점프 후 실행되며 현재 규칙과 동일한 단계에 있습니다.
실행하다. LUA 스크립트의 경로입니다. 스크립트는 이전에 로드 밸런서에 업로드되어야 합니다. 첫 번째 매치가 달성되면 실행됩니다.
로그. 이 매개변수가 활성화되면 첫 번째 일치가 달성될 때 규칙이 기록됩니다.
원본 WAF 규칙 편집
양식이 주어진 WAF 규칙을 적절하게 설명하지 않고 관리자가 해당 WAF 규칙에 익숙하지 않은 경우 SecLang 구문을 사용하면 편집 옵션을 통해 규칙 또는 규칙 배치를 생성할 수 있습니다. 이 필드는 모든 지침을 수락합니다. 지침과 매개변수가 지원되는 경우 SecLang 구문에서 형식으로 표현된 매개변수는 표시되지 않습니다. 단, 수정된 형태로 보여지고 실행시간에 처리됩니다.
다음은 양식 모드와 원시 모드의 예입니다.
양식 모드
이 모드는 WAF 규칙을 편집하는 데 더 사용자 친화적입니다.
원시 모드
WAF 규칙 만들기
새 규칙이 추가되면 집합의 다른 규칙에 추가하여 추가됩니다. 새 규칙을 만들려면 세 가지 방법으로 새 규칙을 만들 수 있습니다.
- 동작. 양식을 사용하여 기본 규칙을 만듭니다. 양식의 매개변수는 에 설명된 것과 동일합니다. WAF 규칙 목록 부분. 규칙 실행이 조건부인 경우 조건 추가 버튼을 눌러 실행 조건을 설정하십시오.
- 표시. 방화벽 표시를 설정합니다. 이 표시는 일치 조건이 달성되면 사용됩니다. 예상되는 매개변수는 마크를 식별하는 이름입니다.
- 관습. 이 양식은 SecLang 구문의 규칙(및 일련의 규칙)을 허용합니다. 에 대한 자세한 내용은 SecLang 구문, 방문 libmodsecurity 프로젝트 문서.
조건 목록
아래 이미지의 표는 HTTP 구문 분석 패킷이 적용될 규칙과 일치해야 하는 조건 목록을 보여줍니다. 이러한 모든 일치는 규칙에 정의된 단계에서 실행됩니다. 매치는 순차적으로 확인되며 모두 달성되면 규칙이 적용됩니다.
일치를 평가하기 위해 WAF는 작업(매개변수 운영자 및 운영) 변수 목록에 대해. 목록의 일부 변수가 작업을 준수하면 성공한 것으로 간주됩니다. 예를 들어 다음 이미지에서 헤더는 이미지 클라이언트가 보낸 요청 헤더 목록에서 찾습니다. 먼저 각 헤더의 64개 염기마다 디코딩한 다음 헤더를 소문자로 변환합니다. 변수의 변환이 완료되면 정규식을 적용하여 문자열을 찾습니다. 형상 변환된 변수 목록에서 그만큼 멀티 매치 옵션은 각 변환 작업 (기본 64 디코딩 후 및 소문자 변환 후)에 일치하는 항목을 시도합니다.
조건 생성
매치는 WAF 규칙을 실행하기 위해 달성해야 하는 조건을 구축합니다. 일치를 평가하기 위해 WAF는 작업(매개변수 운영자 및 운영) 변수 목록에 대해. 작업과 목록의 변수 간에 일치하는 항목이 있으면 일치하는 것으로 간주됩니다. 예를 들어 검색하려면 로컬 호스트(127.0.0.1) 요청 헤더 목록과 가상 호스트 HTTP 필드에 다음과 같은 구성으로 평가할 수 있습니다.
다음은 조건 설정을 위한 구성 매개변수입니다.
변하기 쉬운. 규칙이 일치를 시도할 HTTP 트랜잭션 부분을 제안합니다. 나열된 변수 중에서 선택할 수 있으며 일부가 일치하면 일치하는 것으로 간주됩니다. 변수 필드를 클릭하면 드롭다운 메뉴가 나타납니다. 변수 구성에 대한 정보는 다음에서 찾을 수 있습니다. 변수 만들기 안내
변환. 변환은 변수에 적용된 수정 목록입니다. 변환은 필드에 표시된 것과 동일한 순서로 순차적으로 적용되며 다중 일치 옵션을 사용하여 적용된 변환마다 일치를 시도할 수 있습니다. 변환은 HTTP 트랜잭션의 정보를 수정하지 않으며 임시 컨텍스트에 저장되고 작업이 종료되면 제거됩니다. 여기에 변환 목록입니다. 이 매개변수는 회피 방지 기술을 제거하거나 코드화 데이터를 제거하는 데 사용됩니다.
운영자. 이것이 규칙이 일치를 시도하는 방법입니다. 이 매개변수는 일반적으로 다음과 결합됩니다. 운영. 여기에 연산자 목록입니다.
운영. 이것은 규칙이 경기에서 시도하는 것입니다. 매개변수는 일반적으로 연산자와 결합됩니다. 예상 값의 유형은 연산자와 일치해야 합니다.
멀티 매치. 이 매개변수는 둘 이상의 변환이 구성된 경우에 사용됩니다. 규칙은 변수를 일치시키려고 시도합니다. 운영자및 운영 변환의 각 값에 대해. 가능한 값은 다중 일치를 활성화하는 true 또는 다중 일치 기능을 비활성화하는 false입니다.
일치하지 않음. 이 확인란을 선택하면 일치 결과가 무효화되어 다음으로 변환됩니다. 참된 결과가 그릇된 또는 다음으로 변환 그릇된 결과가 참된.
변수 만들기
변수는 일치 조건의 필수 매개변수입니다. 그들은 HTTP의 일부를 선택합니다 의뢰/응답 정보를 찾기 위해.
변수. 이 매개변수는 정보(시간, 서버…)를 찾기 위한 HTTP 요청/응답 필드를 지정합니다.
변수의 인수. 변수가 선택되면 변수에서 요소를 지정해야 하는 경우가 있습니다. 예를 들어 아래 이미지는 요청 헤더가 주인 선택되어 있습니다.
변수의 요소 개수. 이 확인란은 변수의 요소 수를 계산합니다. 이 기능은 변수가 목록일 때 유용합니다.
일치에 대해 이 변수를 무시합니다.. 이 확인란을 선택하면 일치 항목에서 변수를 확인하지 않습니다. 이 기능은 값 목록이 포함된 변수를 검사하지만 그 중 하나를 제외해야 할 때 유용합니다.
변수 표
변하기 쉬운 | 설명: |
---|---|
ARGS | 요청에 있는 인수 값의 모음입니다. |
ARGS_JSON | JSON 요청의 인수 값을 포함하는 컬렉션입니다. 이 변수는 WAF가 JSON 인수를 구문 분석하는 경우에 사용할 수 있습니다. 규칙 집합 REQUEST-901-INITIALIZATION이 활성화되어야 합니다. |
ARGS_COMBINED_SIZE | 요청 매개 변수의 전체 크기 파일은 제외됩니다. |
ARGS_NAMES | 요청의 인수 이름 모음입니다. |
파일 | 여기에는 사용자 filesys의 파일 이름이 들어 있습니다. 데이터가 multipart / form-data 인 경우에만. |
FILES_COMBINED_SIZE | 요청에 포함 된 파일의 총 크기입니다. 데이터가 multipart / form-data 인 경우에만. |
FILES_NAMES | 파일을 업로드하는 데 사용되는 파일 이름 목록입니다. 데이터가 multipart / form-data 인 경우에만. |
FILES_SIZES | 개별 파일 크기 목록이 포함되어 있습니다. 데이터가 multipart / form-data 인 경우에만. |
REQBODY_ERROR | 요청 본문 형식이 JSON 또는 XML에 대해 올바르지 않은 경우이 변수는 1이고, 그렇지 않으면 0 값을가집니다. |
REQUEST_BODY | 그것은 원시 신체 요청입니다. 요청에 "application/x-www-form-urlencoded" 헤더가 없으면 REQUEST_HEADER 단계에서 "ctl:forceRequestBodyVariable"을 사용해야 합니다. |
REQUEST_BODY_LENGTH | 요청 본문의 바이트 수입니다. |
REQUEST_COOKIES | 모든 요청 쿠키 값이 있는 목록입니다. |
REQUEST_COOKIES_NAMES | 모든 요청 쿠키 이름이 있는 목록입니다. |
REQUEST_HEADERS | 이 변수에는 모든 요청 헤더가 있습니다. |
REQUEST_HEADERS_NAMES | 이 변수에는 요청 헤더 이름이 있는 목록이 있습니다. |
요청하기 | 요청 방법입니다. |
REQUEST_PROTOCOL | 이 변수는 요청 HTTP 버전 프로토콜을 보유합니다. |
REQUEST_URI | URI 요청 경로입니다. 가상 호스트는 제외됩니다. |
PATH_INFO | URI 경로 앞의 정보입니다. |
FULL_REQUEST | 전체 요청입니다. |
FULL_REQUEST_LENGTH | 전체 요청이 가질 수 있는 바이트 수입니다. |
RESPONSE_BODY | 그것은 원시 신체 반응입니다. |
RESPONSE_CONTENT_LENGTH | 응답 본문의 바이트 수입니다. |
RESPONSE_HEADERS | 이 변수에는 모든 응답 헤더가 있습니다. |
RESPONSE_HEADERS_NAMES | 이 변수에는 응답 헤더 이름이 있는 목록이 있습니다. |
RESPONSE_PROTOCOL | 이 변수는 응답 HTTP 버전 프로토콜을 보유합니다. |
RESPONSE_STATUS | 응답 HTTP 코드입니다. |
REMOTE_ADDR | 클라이언트의 IP 주소입니다. |
REMOTE_PORT | 클라이언트가 연결을 초기화하는 포트입니다. |
REMOTE_USER | 인증 된 사용자의 이름입니다. |
TIME | 서버 시간입니다. 형식은시 : 분 : 초입니다. |
지속 | 현재 트랜잭션의 시작 시간부터 시작하는 밀리초 수입니다. |
MULTIPART_FILENAME | 멀티 파트 요청의 필드 파일 이름입니다. |
MULTIPART_NAME | 멀티 파트 요청의 필드 이름입니다. |
MATCHED_VAR | 마지막 일치 작업에서 일치하는 값입니다. 이 값에는 캡처 옵션이 필요 없지만 각 일치 작업에서 바뀝니다. |
MATCHED_VARS | 일치하는 모든 값의 목록입니다. |
SERVER_ADDR | 서버의 IP 주소입니다. |
SERVER_NAME | 요청 URI에서 가져오는 가상 호스트입니다. |
ENV | WAF의 환경 변수입니다. |
TX | 현재 트랜잭션에 대한 변수 모음입니다. 이러한 변수는 트랜잭션이 종료되면 제거됩니다. 변수 TX:0-TX:9는 strRegex 또는 구 연산자로 캡처한 값을 저장합니다. |
연산자 테이블
연산자는 다른 컨텍스트를 가질 수 있습니다. 이 컨텍스트는 정수의 경우 int, IP 작업의 경우 IP, 문자열의 경우 str 또는 데이터 유효성 검사를 위한 validate와 같은 접두사로 표시됩니다.
변하기 쉬운 | 설명: |
---|---|
strBegins | 규칙 중 하나라도 작동 값으로 시작하면 규칙이 일치합니다. |
strContains | 변수 중 하나에 조작 값이 포함되어 있으면 규칙이 일치합니다. |
strContainsWord | 변수 중 하나에 단어 또는 연산 값이 포함되어 있으면 규칙이 일치합니다. |
strEnd | 변수 중 하나라도 조작 값으로 끝나면 규칙이 일치합니다. |
strWithin | 변수 중 작동 값으로 시작하는 변수가 있으면 규칙이 일치합니다. |
strMatch | 변수 중 하나라도 운영 값과 일치하면 규칙이 일치합니다. 이 작업은 문자로 분할된 문자열 목록일 수 있습니다. | |
strEq | 변수 중 하나라도 운영 값과 동일한 경우 규칙이 일치합니다. |
strRegex | 변수 중 하나라도 작동에 사용된 정규식과 일치하는 경우 규칙이 일치합니다. |
strPhrases | 변수 중 하나라도 작동하는 목록의 값과 일치하는 경우 규칙이 일치합니다. |
strPhrasesFromFile | 연산자 strPhrases와 거의 유사하지만 작동은 구문 목록으로 정의되는 곳입니다. |
intEQ | 변수 중 하나가 조작에 사용 된 수와 같으면 j이 일치합니다. |
겔더 란 트 | 어떤 변수가 작동에 사용 된 수보다 크거나 같으면 규칙이 일치합니다. |
intGT | 어떤 변수가 작동에 사용 된 수보다 큰 경우 규칙이 일치합니다. |
intLE | 어떤 변수가 작동에 사용 된 숫자보다 낮거나 같은 경우 규칙이 일치합니다. |
intLT | 변수 중 하나라도 조작에 사용 된 수보다 낮 으면 규칙이 일치합니다. |
detectSQLi | 변수 목록에서 SQL 주입을 감지합니다. 이 연산자는 어떤 작동도 기대하지 않습니다. |
detectXSS | 변수 목록에 XSS 주입 감지를 적용합니다. 이 연산자는 어떤 작동도 기대하지 않습니다. |
ipMatch | 변수 목록을 사용하여 운영 중인 IP 또는 네트워크 세그먼트를 일치시키려고 시도합니다. |
ipMatchFromFile | 연산자 ipMatch와 동일하지만 IP 및 네트워크 세그먼트 목록이 있는 파일에 대해 변수 일치를 시도합니다. |
validateByteRange | 변수의 바이트 수가 작동 값 중 하나에 있도록 합니다. 연산의 예는 "10, 13, 32-126"입니다. |
validateUrlEncoding | 인코딩된 데이터의 유효성을 검사합니다. 이 연산자는 데이터를 일반적으로 인코딩하지 않는 데이터나 여러 번 인코딩되는 데이터에만 사용해야 합니다. |
validateUtf8Encoding | UTF-8인 변수의 유효성을 검사합니다. 이 연산자는 어떤 작동도 기대하지 않습니다. |
확인 신용 카드 | 변수가 신용 카드 번호인지 확인합니다. 이 매개변수는 정규식을 작동으로 받아들입니다. 일치하면 카드를 성공적으로 확인합니다. |
verifySSN | 변수가 미국 사회 보장 번호인지 확인합니다. 이 매개 변수는 정규 표현식을 작동으로 인식하고 일치하는 경우 SSN 확인을 적용합니다. |
matchAllways | 항상 true를 반환하여 강제로 일치시킵니다. |
matchNever | 항상 false를 반환하여 강제로 일치하지 않습니다. |
변환 표
변환 | 설명: |
---|---|
base64Decode | Base64로 인코딩 된 문자열을 디코딩합니다. |
base64DecodeExt | 잘못된 문자를 무시하고 Base64 인코딩 문자열을 디코딩합니다. |
sqlHexDecode | SQL 16 진수 데이터를 디코딩합니다. |
base64Encode | Base64 인코딩을 사용하여 인코딩합니다. |
cmdLine | 이스케이프된 명령줄과 관련된 문제를 방지합니다. |
compressWhitespace | 공백 문자 (0x20, \ f, \ t, \ n, \ r, \ v, 0xa0)를 공백 문자 (ASCII 0x20)로 변환하여 여러 개의 연속 된 공백 문자를 하나로 압축합니다. |
cssDecode | CSS 2.x 이스케이프 규칙을 사용하여 인코딩된 문자를 디코딩합니다. 이 함수는 디코딩 프로세스에서 최대 XNUMX바이트만 사용합니다. 즉, CSS 인코딩(일반적으로 인코딩되지 않음)을 사용하여 인코딩된 ASCII 문자를 발견하거나 역슬래시와 비 -XNUMX진수 문자(예: ja\vascript는 javascript와 동일). |
escapeSeqDecode | ANSI C 이스케이프 시퀀스 디코딩 : \ a, \ b, \ f, \ n, \ r, \ t, \ v, \\, \ ?, \ ', \”, \ xHH (0 진수), \ XNUMXOOO (XNUMX 진수) . 출력에 잘못된 인코딩이 남아 있습니다. |
16 진수 코드 | hexEncode에서 사용 된 알고리즘과 동일한 알고리즘을 사용하여 인코딩 된 문자열을 디코딩합니다 (다음 항목 참조). |
hexEncode | 각 입력 바이트를 두 개의 16 진수로 바꾸어 문자열 (2 진 문자 포함 가능)을 인코딩합니다. 예를 들어 xyz는 78797a로 인코딩됩니다. |
htmlEntityDecode | HTML 엔터티로 인코딩 된 문자를 디코딩합니다. |
jsDecode | 자바 스크립트 이스케이프 시퀀스를 디코딩합니다. |
길이 | 입력 문자열의 길이를 바이트 단위로 조회하여 출력에 (문자열로) 배치합니다. |
소문자 | 현재 C 로케일을 사용하여 모든 문자를 소문자로 변환합니다. |
md5 | 데이터 입력에서 MD5 해시를 계산합니다. 계산된 해시는 원시 이진 형식이며 인쇄(또는 기록)할 텍스트로 인코딩해야 할 수 있습니다. 해시 함수는 일반적으로 hexEncode와 함께 사용됩니다. |
없음 | 실제 변환 함수가 아니라 현재 규칙과 관련된 이전 변환 함수를 제거하는 명령입니다. |
normalizePath | 입력 문자열에서 여러 슬래시, 디렉토리 자체 참조 및 디렉토리 역참조(입력 시작 부분에 있는 경우 제외)를 제거합니다. |
normalizePathWin | normalizePath와 같지만, 먼저 백 슬래시 문자를 슬래시로 변환합니다. |
패리티가 7 비트 | 7비트 데이터의 짝수 패리티를 계산하여 각 대상 바이트의 8번째 비트를 계산된 패리티 비트로 바꿉니다. |
parityOdd7bit | 7비트 데이터의 홀수 패리티를 계산하여 각 대상 바이트의 8번째 비트를 계산된 패리티 비트로 바꿉니다. |
패리티 Zero7bit | 7비트 데이터의 8 패리티를 계산하여 각 대상 바이트의 7번째 비트를 7 패리티 비트로 대체하여 짝수/홀수 패리티 XNUMX비트 데이터를 ASCIIXNUMX 데이터로 검사할 수 있습니다. |
removeNulls | 모든 NUL 바이트를 입력에서 제거합니다. |
removeWhitespace | 입력에서 모든 공백 문자를 제거합니다. |
replaceComments | C 스타일 주석 (/ *… * /)의 각 항목을 단일 공백 (다중 연속 발생은 압축되지 않음)으로 바꿉니다. 종료되지 않은 주석은 공백 (ASCII 0x20)으로 대체됩니다. 그러나 주석 (* /)의 독립형 종료는 수행되지 않습니다. |
removeCommentsChar | 공통 주석 문자 (/ *, * /, –, #)를 제거합니다. |
replaceNulls | 입력 된 NUL 바이트를 공백 문자 (ASCII 0x20)로 바꿉니다. |
urlDecode | URL로 인코딩 된 입력 문자열을 디코딩합니다. 유효하지 않은 인코딩 (즉, 16 진수가 아닌 문자를 사용하는 문자 또는 문자열의 끝에 있고 1 바이트 또는 2 바이트가 누락 된 문자)은 변환되지 않지만 오류는 발생하지 않습니다. |
대문자 | 현재 C 로케일을 사용하여 모든 문자를 대문자로 변환합니다. |
urlDecodeUni | urlDecode와 비슷하지만 Microsoft 고유의 %, u 인코딩을 지원합니다. |
urlEncode | URL 인코딩을 사용하여 입력 문자열을 인코딩합니다. |
utf8toUnicode | 모든 UTF-8 문자 시퀀스를 유니코드로 변환합니다. 이것은 특히 위양성 및 위음성을 최소화하는 비영어권의 경우 입력 정규화에 도움이 됩니다. |
sha1 | 입력 문자열에서 SHA1 해시를 계산합니다. 계산 된 해시는 원시 이진 형식이므로 인쇄 할 (또는 기록 된) 텍스트로 인코딩해야 할 수 있습니다. 해시 함수는 일반적으로 hexEncode와 함께 사용됩니다. |
trimLeft | 입력 문자열의 왼쪽에서 공백을 제거합니다. |
trimRight | 입력 문자열의 오른쪽에서 공백을 제거합니다. |
손질 | 입력 문자열의 왼쪽과 오른쪽에서 공백을 제거합니다. |
농장 WAF 설정
이 섹션에서는 현재 WAF 규칙 집합을 HTTP 팜에 할당 할 수 있습니다.
이 섹션에서는 하나 이상의 팜을 선택한 다음(Shift 키보드 버튼을 누른 상태로 유지하여) WAF 규칙 집합을 할당하거나 제거할 수 있습니다. 이중 화살표 버튼을 사용하여 사용 가능한 모든 팜에서 할당하거나 제거할 수도 있습니다.