RegularExpressionProtection 정책

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

정책 아이콘

대상

메시지(예: URI 경로, 쿼리 매개변수, 헤더, 양식 매개변수, 변수, XML 페이로드 또는 JSON 페이로드)에서 정보를 추출하고 사전 정의된 정규 표현식에 따라 해당 콘텐츠를 평가합니다. 지정된 정규 표현식이 true로 평가되면 메시지가 위협으로 간주되어 정책에서 오류가 발생합니다.

이 정책은 확장 가능한 정책이며, 이 정책을 사용하면 Apigee 라이선스에 따라 비용 또는 사용률이 영향을 받을 수 있습니다. 정책 유형 및 사용 영향에 대한 자세한 내용은 정책 유형을 참조하세요.

동영상

정규 표현식 보호 정책에 대한 자세한 내용은 다음 동영상을 참조하세요.

동영상 설명
SQL 삽입 공격 방지 Apigee UI에서 정규 표현식 보호 정책을 사용해 SQL 삽입 공격을 방지하세요.

샘플

GitHub

GitHub의 정규식 방지 샘플<script> 태그에 악성 코드를 포함할 수 있는 쿼리 매개변수를 통해 실행된 잠재적 SQL 삽입 공격을 감지하는 방법을 보여줍니다. 또한 이 샘플은 해커가 응답에서 유용한 정보를 얻는 것을 방지하기 위해 일반 400 오류 상태를 설정하는 좋은 방법을 보여줍니다.

자바스크립트에 공격 방지 포함

<RegularExpressionProtection name="JsonPathRegExProtection">
    <Source>request</Source>
    <JSONPayload escapeSlashCharacter="true">
       <JSONPath>
          <Expression>$</Expression>
          <Pattern><![CDATA[ <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*> ]]></Pattern>
       </JSONPath>
    </JSONPayload>
 </RegularExpressionProtection>

위 샘플은 정규식 방지 정책을 사용하여 자바스크립트 포함 공격의 JSON 페이로드를 평가하는 방법을 보여줍니다. 특히 <JSONPath>/<Expression>에서 추출된 콘텐츠는 <JSONPath>/<Pattern>의 정규 표현식과 비교하여 평가됩니다.

<JSONPath>/<Pattern>의 정규 표현식에 XML 예약 문자(", &, ', <, >)가 포함되어 있으면 위 샘플에 표시된 대로 CDATA(문자 데이터) 섹션에서 래핑하거나 예약된 문자를 XML로 인코딩해야 합니다(예: <&lt;로, >&gt;로 바꿈).

또한 정규 표현식에 슬래시(/)가 포함되어 있으면 <JSONPayload> escapeSlashCharacter 속성을 true로 설정하여 이스케이프 처리해야 합니다.

대소문자를 구분하지 않는 일치

대소문자를 구분하지 않는 일치는 일반적인 사용 사례입니다. (?i) 구문을 사용하여 정규 표현식에서 이를 구현하는 방법은 다음과 같습니다. 이 예시에서 DELETE, delete, Delete 등은 true로 평가됩니다.

<Pattern>[\s]*(?i)((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))</Pattern>

양식 매개변수 검사

<RegularExpressionProtection name="REP-Formparam">
  <Source>request</Source>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <FormParam name="firstname">
    <Pattern><![CDATA[[-+=$%&]]]></Pattern>
  </FormParam>
  <FormParam name="lastname">
    <Pattern><![CDATA[[-+=$%&]]]></Pattern>
  </FormParam>
</RegularExpressionProtection>

이 RegularExpressionProtection 정책 구성은 [-+=$%&] 집합 내에서 특수문자의 어커런스에 대한 양식 매개변수를 평가합니다. 이 정책은 요청의 콘텐츠 유형 헤더가 application/x-www-form-urlencoded인 경우에만 적용됩니다. 정책 구성은 XML에서 특수한 & 문자의 존재로 인해 CDATA(문자 데이터) 섹션을 사용하여 정규 표현식을 래핑합니다.


정규 표현식 보호 정책 정보

Apigee를 사용하면 런타임에 API 트래픽에 대해 평가할 수 있는 정규 표현식을 구성하여 특정 패턴을 따르는 일반적인 콘텐츠 수준 위협을 식별할 수 있습니다.

정규 표현식(약칭 정규식)은 문자열의 패턴을 지정하는 문자열 집합입니다. 정규식을 사용하면 콘텐츠의 패턴을 프로그래매틱 방식으로 평가할 수 있습니다. 예를 들어 이메일 주소가 올바르게 구조화되어 있는지 평가하는 등의 용도로 정규 표현식을 사용할 수 있습니다. 자세한 내용은 자바 가이드의 정규 표현식을 참조하세요.

RegularExpressionProtection의 가장 일반적인 용도는 JSON 및 XML 페이로드의 악성 콘텐츠를 평가하는 것입니다.

정규 표현식으로 모든 콘텐츠 기반 공격을 제거할 수 없으며, 심층 방어를 위해 여러 메커니즘을 결합해야 합니다. 이 섹션에서는 콘텐츠 제외에 권장되는 몇 가지 패턴을 설명합니다.

제외 패턴 예시

정규 표현식은 정책의 XML 구성 파일에 XML로 인코딩되어야 합니다. 안티패턴: RegularExpressionProtection 정책에 탐욕적 수량자 사용도 참조하세요.

이름 정규 표현식
SQL 삽입
[\s]*((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))
서버 측 포함(SSI) 삽입
<!--#(include|exec|echo|config|printenv)\s+.*

XML 인코딩:

&lt;!--#(include|exec|echo|config|printenv)\s+.*
XPath 약식 구문 삽입
(/(@?[\w_?\w:\*]+(\[[^]]+\])*)?)+
XPath 확장 구문 삽입
/?(ancestor(-or-self)?|descendant(-or-self)?|following(-sibling))
자바스크립트 삽입
<\s*script\b[^>]*>[^<]+<\s*/\s*script\s*>

XML 인코딩:

&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*/\s*script\s*&gt;

XML 또는 JSON 페이로드를 사용해 요청에 Content-Type 헤더 설정

정규 표현식 보호 정책의 페이로드에는 다음 요소가 포함될 수 있습니다.

  • <XMLPayload> 요소: XML 페이로드에서 정보를 추출하여 제공된 정규 표현식과 비교하여 평가하도록 지정합니다.

    정책에 <XMLPayload>를 사용하는 경우 요청의 Content-Type 헤더는 application/xml 또는 text/xml 같은 XML 콘텐츠 유형이어야 합니다.

  • <JSONPayload> 요소: JSON 페이로드에서 정보를 추출하여 제공된 정규 표현식과 비교하여 평가하도록 지정합니다.

    정책에 <JSONPayload>를 사용하는 경우 요청의 Content-Type 헤더는 application/json 같은 JSON 콘텐츠 유형이어야 합니다.

일반적으로 XML 또는 JSON을 허용하도록 API를 설계합니다. 하지만 API가 둘 다 허용하는 시나리오가 있을 수 있습니다. 그런 다음 <XMLPayload><JSONPayload> 요소를 모두 사용하는 정규 표현식 보호 정책을 정의할 수 있습니다. Content-Type 헤더 값에 따라 특정 요청에 하나의 요소만 적용됩니다.

요소 참조

요소 참조는 RegularExpressionProtection 정책의 요소와 속성을 설명합니다.

<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
   <DisplayName>Regular Expression Protection 1</DisplayName>
   <Source>response</Source>
   <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
   <URIPath>
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </URIPath>
   <QueryParam name="a-query-param">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </QueryParam>
   <Header name="a-header">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </Header>
   <FormParam name="a-form-param">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </FormParam>
   <Variable name="request.content">
     <Pattern>REGEX PATTERN</Pattern>
     <Pattern>REGEX PATTERN</Pattern>
   </Variable>
   <XMLPayload>
     <Namespaces>
       <Namespace prefix="apigee">http://www.apigee.com</Namespace>
     </Namespaces>
     <XPath>
       <Expression>/apigee:Greeting/apigee:User</Expression>
       <Type>string</Type>
       <Pattern>REGEX PATTERN</Pattern>
       <Pattern>REGEX PATTERN</Pattern>
     </XPath>
   </XMLPayload>
   <JSONPayload>
     <JSONPath>
       <Expression>$.store.book[*].author</Expression>
       <Pattern>REGEX PATTERN</Pattern>
       <Pattern>REGEX PATTERN</Pattern>
     </JSONPath>
    </JSONPayload>
</RegularExpressionProtection>

<RegularExpressionProtection> 속성

<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">

다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.

속성 설명 기본값 Presence
name

정책의 내부 이름입니다. name 속성의 값에는 문자, 숫자, 공백, 하이픈, 밑줄, 마침표가 포함될 수 있습니다. 이 값은 255자(영문 기준)를 초과할 수 없습니다.

원하는 경우 <DisplayName> 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름을 사용하여 정책에 라벨을 지정합니다.

해당 사항 없음 필수
continueOnError

정책이 실패할 경우 오류가 반환되도록 하려면 false로 설정합니다. 이는 대부분의 정책에서 예상되는 동작입니다.

정책이 실패해도 흐름 실행이 계속되도록 하려면 true로 설정합니다. 참조:

false 선택사항
enabled

정책을 시행하려면 true로 설정합니다.

정책을 중지하려면 false로 설정합니다. 정책이 흐름에 연결되어 있어도 정책이 시행되지 않습니다.

true 선택사항
async

이 속성은 지원이 중단되었습니다.

false 지원 중단됨

<DisplayName> 요소

name 속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.

<DisplayName>Policy Display Name</DisplayName>
기본값

해당 사항 없음

이 요소를 생략하면 정책 name 속성 값이 사용됩니다.

Presence 선택사항
유형 문자열

<Source> 요소

정보를 추출해야 하는 메시지를 나타냅니다.

<Source> 요소가 생략된 경우 기본값은 message입니다. 예를 들면 <Source>message</Source>입니다. message로 설정하면 정책은 요청 흐름에 연결될 때 요청 메시지를 소스로 사용합니다. 마찬가지로 정책은 응답 흐름에 연결될 때 응답 메시지를 사용합니다.

소스 메시지를 확인할 수 없거나 메시지 이외의 유형으로 확인되는 경우 정책에서 오류를 반환합니다.

<Source>response</Source>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 문자열

<IgnoreUnresolvedVariables> 요소

확인할 수 없는 변수가 발견되면 정책이 오류를 반환할지 결정합니다.

false(기본값)로 설정하면 확인할 수 없는 변수가 발생할 때 정책에서 오류를 반환합니다. true로 설정하면 확인되지 않은 변수가 빈 문자열(Null)로 처리됩니다.

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
기본값: false
Presence: 선택사항
유형: 불리언

<URIPath> 요소

요청 URI 경로에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다. 매칭할 정규 표현식 패턴을 지정하는 <Pattern> 요소를 하나 이상 제공해야 합니다.

<URIPath>
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</URIPath>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

<QueryParam> 요소

요청 쿼리 매개변수에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다. 매칭할 정규 표현식 패턴을 지정하는 <Pattern> 요소를 하나 이상 제공해야 합니다.

<QueryParam name="a-query-param">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</QueryParam>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

속성

속성 설명 기본값 Presence
이름 제공된 정규 표현식과의 비교 평가를 위해 정보를 추출해야 하는 요청 쿼리 매개변수의 이름입니다. 해당 사항 없음 필수

<Header> 요소

요청 및 응답 헤더에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다. 매칭할 정규 표현식 패턴을 지정하는 <Pattern> 요소를 하나 이상 제공해야 합니다.

<Header name="a-header">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</Header>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

속성

속성 설명 기본값 Presence
이름

제공된 정규 표현식과의 비교 평가를 위해 정보를 추출해야 하는 요청 및 응답 헤더의 이름입니다.

해당 사항 없음 필수

<FormParam> 요소

요청 양식 매개변수에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다. 매칭할 정규 표현식 패턴을 지정하는 <Pattern> 요소를 하나 이상 제공해야 합니다.

<FormParam name="a-form-param">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</FormParam>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

속성

속성 설명 기본값 Presence
이름

제공된 정규 표현식과의 비교 평가를 위해 정보를 추출해야 하는 요청 양식 매개변수의 이름입니다.

해당 사항 없음 필수

<Variable> 요소

지정된 변수에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다.

<Variable name="request.content">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</Variable>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

속성

속성 설명 기본값 Presence
이름

제공된 정규 표현식과의 비교 평가를 위해 정보를 추출해야 하는 변수의 이름입니다.

해당 사항 없음 필수

<XMLPayload> 요소

XML 페이로드에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다.

<XMLPayload>
   <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
   </Namespaces>
   <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </XPath>
</XMLPayload>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

<XMLPayload>/<Namespaces> 요소

XPath 평가에 사용할 네임스페이스를 지정합니다.

<XMLPayload>
   <Namespaces>
      <Namespace prefix="apigee">http://www.apigee.com</Namespace>
   </Namespaces>
   <XPath>
      <Expression>/apigee:Greeting/apigee:User</Expression>
      <Type>string</Type>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </XPath>
</XMLPayload>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 문자열

<XMLPayload>/<Namespaces>/<Namespace> 요소

XPath 평가에 사용할 각 네임스페이스를 지정합니다.
<Namespaces>
   <Namespace prefix="apigee">http://www.apigee.com</Namespace>
</Namespaces>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 문자열

속성

속성 설명 기본값 Presence
접두사

특정 네임스페이스를 한정하는 데 도움이 되는 프리픽스를 제공합니다.

해당 사항 없음 필수

<XMLPayload>/<XPath> 요소

평가할 XPath를 지정합니다.
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

<XMLPayload>/<XPath>/<Expression> 요소

변수에 정의된 XPath 표현식을 지정합니다. XPath 1.0 표현식만 지원됩니다. 예를 들어 <Expression>/company/employee[@age>=$request.header.age]</Expression>은 연령이 request.header.age에 지정된 값보다 크거나 같은 직원의 세부정보를 추출합니다.
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 문자열

<XMLPayload>/<XPath>/<Type> 요소

원하는 출력 데이터 형식을 지정합니다.

일반적으로 'string' 또는 'nodeset'를 사용합니다. xpath 쿼리가 최대 1개의 값을 생성할 것으로 확신하거나 최대 1개의 값을 확인하려면 'string'을 사용합니다. xpath 쿼리가 여러 값을 반환할 수 있는 경우 'nodeset'를 지정하여 모든 값을 확인합니다.

예를 들어 XPath 표현식 //*/@*를 살펴보겠습니다. 모든 요소의 모든 속성과 일치합니다. 'string'을 Type으로 지정하면 Apigee가 이 쿼리의 결과를 단일 문자열로 강제 변환합니다. 이는 XML 문서 요소 중에서 하나의 속성 값이지만 해당 속성과 요소는 정의되지 않습니다. 그런 다음 Apigee는 단일 속성의 값에 대해서만 패턴 일치를 수행합니다. 원하는 결과가 아닐 수 있습니다.

반대로 'nodeset'를 XPath 표현식의 Type으로 지정하면 Apigee는 XML 문서의 각 요소에 대한 속성 값마다 패턴 일치를 수행합니다.

<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
기본값: 문자열
Presence: 선택사항
유형: 문자열
유효한 값:

string, boolean, int, long, float, double, nodeset 키워드 중 하나입니다.

<XMLPayload>/<XPath>/<Pattern> 요소

정규 표현식 패턴을 정의합니다. <Pattern> 요소의 정규 표현식에 XML 예약 문자(", &, ', <, 또는 .)가 포함되어 있으면 먼저 이를 XML로 인코딩한 후에 포함해야 합니다.

<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
기본값: 해당 사항 없음
Presence: 필수
유형: 문자열

<JSONPayload> 요소

JSON 페이로드에서 정보를 추출하고 제공된 정규 표현식과 비교하여 평가하도록 지정합니다.

<JSONPayload>
   <JSONPath>
      <Expression>$.store.book[*].author</Expression>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </JSONPath>
</JSONPayload>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 해당 사항 없음

속성

속성 설명 기본값 Presence
escapeSlashCharacter

<JSONPath>/<Pattern>의 정규 표현식에서 슬래시(/) 문자를 이스케이프 처리하려면 true로 설정합니다.

true 선택사항

<JSONPayload>/<JSONPath>/<Expression> 요소

변수에 정의된 JSONPath 표현식을 지정합니다.

<JSONPath>
   <Expression>$.store.book[*].author</Expression>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</JSONPath>
기본값: 해당 사항 없음
현재 상태: 선택사항
유형: 문자열

<JSONPayload>/<JSONPath>/<Pattern> 요소

정규 표현식 패턴을 정의합니다. <Pattern> 요소의 정규 표현식에 XML 예약 문자(", &, ', <, 또는 .)가 포함되어 있으면 먼저 이를 XML로 인코딩한 후에 포함해야 합니다.

<JSONPath>
   <Expression>$.store.book[*].author</Expression>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</JSONPath>
기본값: 해당 사항 없음
Presence: 필수
유형: 문자열

오류 참조

이 섹션에서는 이 정책이 오류를 트리거할 때 반환되는 오류 코드 및 메시지와 Apigee에서 설정한 오류 변수를 설명합니다. 오류를 처리하기 위해 오류 규칙을 개발 중인 경우, 이 정보는 중요합니다. 오류를 캡처하고 자체 커스텀 오류를 발생시키려면 정책 루트 요소에서 continueOnError="true" 속성을 설정합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

런타임 오류

이러한 오류는 정책이 실행될 때 발생할 수 있습니다.

오류 코드 Message
ExecutionFailed Failed to execute the RegularExpressionProtection StepDefinition {0}. Reason: {1}
InstantiationFailed Failed to instantiate the RegularExpressionProtection StepDefinition {0}
NonMessageVariable Variable {0} does not resolve to a Message
SourceMessageNotAvailable {0} message is not available for RegularExpressionProtection StepDefinition {1}
ThreatDetected Regular Expression Threat Detected in {0}: regex: {1} input: {2}
VariableResolutionFailed Failed to resolve variable {0}

배포 오류

오류 코드 메시지 해결
CannotBeConvertedToNodeset RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset. Context {2}
DuplicatePrefix RegularExpressionProtection {0}: Duplicate prefix {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: Empty JSONPath expression
EmptyXPathExpression RegularExpressionProtection {0}: Empty XPath expression
InvalidRegularExpression RegularExpressionProtection {0}: Invalid Regular Expression {1}, Context {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: Failed to compile jsonpath {1}. Context {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty uri
NoPatternsToEnforce RegularExpressionProtection {0}: No patterns to enforce in {1}
NothingToEnforce RegularExpressionProtection {0}: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory
XPathCompilationFailed RegularExpressionProtection {0}: Failed to compile xpath {1}. Context {2}

오류 변수

이러한 변수는 이 정책으로 오류가 트리거될 때 설정됩니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항을 참조하세요.

변수 장소
fault.name="fault_name" fault_name은 위 표에 나열된 오류의 이름입니다. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name은 오류를 발생시킨 정책의 사용자 지정 이름입니다. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

스키마

관련 주제

JSON 위협 방지 정책

XML 위협 방지 정책