Zasada ExpressExpressionProtection

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Co

Wyodrębnia informacje z wiadomości (np. ścieżkę URI, parametr zapytania, nagłówek, parametr formularza, zmienną, ładunek XML lub ładunek JSON) i ocenia te treści na podstawie predefiniowanych wyrażeń regularnych. Jeśli którekolwiek z podanych wyrażeń regularnych przyjmie wartość true, wiadomość zostanie uznana za zagrożenie i odrzucona.

Filmy

Aby dowiedzieć się więcej o zasadach ochrony wyrażeń regularnych, obejrzyj poniższe filmy.

Wideo Opis
Ochrona przed atakami typu wstrzyknięcie kodu SQL (New Edge) Chroń się przed atakami typu SQL injection, korzystając z zasad ochrony wyrażeń regularnych w interfejsie New Edge.
Ochrona przed atakami typu wstrzyknięcie kodu SQL (Classic Edge) Chroń się przed atakami typu SQL injection za pomocą zasady ochrony wyrażeń regularnych w klasycznym interfejsie Edge.

Przykłady

GitHub

Przykładowy kod regex-protection na GitHubie pokazuje, jak przechwytywać potencjalne ataki polegające na wstrzykiwaniu kodu SQL, które są przeprowadzane za pomocą parametru zapytania. Przykład ten ilustruje też dobrą praktykę ustawiania ogólnego stanu błędu 400, aby uniemożliwić hakerom uzyskanie z odpowiedzi przydatnych informacji.

Ochrona przed atakami typu „include” w JavaScript

<RegularExpressionProtection name="JsonPathRegExProtection">
    <DisplayName>Regular Expression Protection 1</DisplayName>
    <Source>request</Source>
    <JSONPayload escapeSlashCharacter="true">
       <JSONPath>
          <Expression>$</Expression>
          <Pattern>&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*\/\s*script\s*&gt;
          </Pattern>
          <Pattern>n\s*\\\\\s*slash</Pattern>
          <Pattern>n\s*\/\s*slash</Pattern>
          <Pattern>n\s*\\"\s*quotes</Pattern>
          <Pattern>n\s*\\b\s*space</Pattern>
          <Pattern>n\s*\\f\s*forwardfeed</Pattern>
          <Pattern>n\s*\\n\s*newline</Pattern>
          <Pattern>n\s*\\r\s*carria</Pattern>
          <Pattern>n\s*\\t\s*tab</Pattern>
          <Pattern>n\s*\\uFFFF\s*hex</Pattern>
       </JSONPath>
    </JSONPayload>
 </RegularExpressionProtection>

Powyższy przykład pokazuje, jak używać zasady RegularExpressionProtection do sprawdzania ładunków JSON pod kątem ataków typu JavaScript include. W szczególności treść wyodrębniona przez <JSONPath>/<Expression> jest oceniana pod kątem wyrażenia regularnego w <JSONPath>/<Pattern>.

Jeśli wyrażenie regularne w <JSONPath>/<Pattern> zawiera znaki zarezerwowane w XML (", &, ', < lub .), musisz je zakodować w XML, zanim dodasz je do pliku konfiguracyjnego XML zasad. Na przykład w powyższym przykładzie wyrażenie regularne <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*> zostało zakodowane w XML jako &lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*\/\s*script\s*&gt;.

Jeśli wyrażenie regularne zawiera ukośniki (/), musisz je wyłączyć, ustawiając atrybut <JSONPayload> escapeSlashCharacter na true.

Dopasowywanie bez rozróżniania wielkości liter

Dopasowywanie bez rozróżniania wielkości liter jest częstym przypadkiem użycia. Oto przykład, jak możesz to zrobić w wyrażeniu regularnym za pomocą konstrukcji (?i). W tym przykładzie wartością wyrażeń DELETE, deleteDelete będzie „true” (prawda).

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

Informacje o zasadach ochrony wyrażeń regularnych

Apigee Edge umożliwia konfigurowanie wyrażeń regularnych, które można oceniać w odniesieniu do ruchu API w czasie działania, aby identyfikować typowe zagrożenia na poziomie treści, które mają określone wzorce.

Wyrażenie regularne, w skrócie regex, to zbiór ciągów znaków, które określają wzorzec w ciągu znaków. Wyrażenia regularne umożliwiają programowe sprawdzanie treści pod kątem wzorców. Wyrażenia regularne można wykorzystać na przykład do sprawdzenia adresu e-mail, aby upewnić się, że ma prawidłową strukturę. Więcej informacji znajdziesz w artykule Wyrażenia regularne w samouczkach dotyczących Javy.

Najczęstszym zastosowaniem RegularExpressionProtection jest ocena ładunków JSON i XML pod kątem złośliwych treści.

Żadne wyrażenie regularne nie może wyeliminować wszystkich ataków opartych na treści, dlatego należy połączyć ze sobą wiele mechanizmów, aby zapewnić kompleksową ochronę. W tej sekcji opisujemy kilka zalecanych wzorców wykluczania treści.

Przykładowe wzorce wykluczeń

Wyrażenia regularne muszą być zakodowane w formacie XML w pliku konfiguracji XML zasad.

Nazwa Wyrażenie regularne
Wstrzyknięcie kodu SQL
[\s]*((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))
Wstrzykiwanie instrukcji SSI
<!--#(include|exec|echo|config|printenv)\s+.*

Zakodowany w XML:

&lt;!--#(include|exec|echo|config|printenv)\s+.*
Wstrzykiwanie skróconej składni XPath
(/(@?[\w_?\w:\*]+(\[[^]]+\])*)?)+
Wstrzykiwanie rozszerzonej składni XPath
/?(ancestor(-or-self)?|descendant(-or-self)?|following(-sibling))
Wstrzyknięcie kodu JavaScript
<\s*script\b[^>]*>[^<]+<\s*/\s*script\s*>

Zakodowany w XML:

&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*/\s*script\s*&gt;
Wstrzykiwanie wyjątków Java
.*?Exception in thread.*

Ustawianie nagłówka Content-Type w żądaniu z ładunkiem XML lub JSON

Ładunek zasad ochrony wyrażeń regularnych może zawierać te elementy:

  • Element <XMLPayload>: określa, że informacje muszą zostać wyodrębnione z ładunku XML i sprawdzone pod kątem zgodności z podanym wyrażeniem regularnym.

    Jeśli w zasadach używasz symbolu <XMLPayload>, nagłówek Content-Type w żądaniu musi mieć typ treści XML, np. application/xml lub text/xml.

  • <JSONPayload> element: określa, że informacje muszą zostać wyodrębnione z ładunku JSON i sprawdzone pod kątem zgodności z podanym wyrażeniem regularnym.

    Jeśli w zasadach używasz <JSONPayload>, nagłówek Content-Type żądania musi być typem treści JSON, np. application/json.

Zazwyczaj interfejs API jest projektowany tak, aby akceptować format XML lub JSON. Może jednak wystąpić sytuacja, w której interfejs API zaakceptuje oba te formaty. Możesz wtedy zdefiniować zasadę ochrony wyrażeń regularnych, która będzie używać elementów <XMLPayload><JSONPayload>. W przypadku konkretnego żądania zastosowany zostanie tylko jeden element na podstawie wartości nagłówka Content-Type.

Odwołanie do elementu

Dokumentacja elementu zawiera opis elementów i atrybutów zasady 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>

Atrybuty <RegularExpressionProtection>

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

W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślny Obecność
name

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekracza 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName> do oznaczenia zasady jako edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To normalne w przypadku większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Opcjonalnie
enabled

Aby egzekwować zasadę, ustaw wartość true.

Aby wyłączyć zasadę, ustaw wartość false. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

fałsz Wycofano

&lt;DisplayName&gt; element

Używaj oprócz atrybutu name do oznaczania zasady w edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślny

Nie dotyczy

Jeśli pominiesz ten element, atrybut name zasady otrzyma wartość .

Obecność Opcjonalnie
Typ Ciąg znaków

Element <Source>

Wskazuje wiadomość, z której należy wyodrębnić informacje.

Jeśli element <Source> zostanie pominięty, domyślna wartość to message. Na przykład: <Source>message</Source>. Gdy ta opcja ma wartość message, zasada używa wiadomości z żądaniem jako źródła, gdy jest dołączona do przepływu żądania. Podobnie zasada używa wiadomości z odpowiedzią, gdy jest dołączona do przepływu odpowiedzi.

Jeśli nie można rozpoznać wiadomości źródłowej lub jeśli jest ona innego typu niż wiadomość, zasady zwracają błąd.

<Source>response</Source>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Ciąg znaków

Element <IgnoreUnresolvedVariables>

Określa, czy zasada zwraca błąd, gdy napotka zmienną, której nie można rozpoznać.

Jeśli zasada ma wartość false (domyślną), zwraca błąd, gdy napotka nierozwiązywalną zmienną. Jeśli ta opcja jest ustawiona na true, nierozwiązana zmienna jest traktowana jako pusty ciąg znaków (Null).

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
Domyślnie: fałsz
Obecność: Opcjonalny
Typ: Wartość logiczna

Element <URIPath>

Określa, że informacje muszą być wyodrębnione ze ścieżki identyfikatora URI żądania i sprawdzone pod kątem podanych wyrażeń regularnych. Musisz podać co najmniej 1 element <Pattern> określający wzorzec wyrażenia regularnego do dopasowania.

<URIPath>
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</URIPath>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Element <QueryParam>

Określa, że informacje należy wyodrębnić z parametru zapytania żądania i sprawdzić pod kątem podanych wyrażeń regularnych. Musisz podać co najmniej 1 element <Pattern> określający wzorzec wyrażenia regularnego do dopasowania.

<QueryParam name="a-query-param">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</QueryParam>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa Nazwa parametru zapytania w żądaniu, z którego należy wyodrębnić informacje do oceny na podstawie podanych wyrażeń regularnych. Nie dotyczy Wymagane

Element <Header>

Określa, że informacje muszą zostać wyodrębnione z nagłówków żądania i odpowiedzi oraz sprawdzone pod kątem zgodności z podanymi wyrażeniami regularnymi. Musisz podać co najmniej 1 element <Pattern> określający wzorzec wyrażenia regularnego do dopasowania.

<Header name="a-header">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</Header>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa

Nazwa nagłówka żądania i nagłówka odpowiedzi, z którego należy wyodrębnić informacje do oceny na podstawie podanych wyrażeń regularnych.

Nie dotyczy Wymagane

Element <FormParam>

Określa, że informacje muszą zostać wyodrębnione z parametru formularza żądania i sprawdzone pod kątem zgodności z podanymi wyrażeniami regularnymi. Musisz podać co najmniej 1 element <Pattern> określający wzorzec wyrażenia regularnego do dopasowania.

<FormParam name="a-form-param">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</FormParam>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa

Nazwa parametru formularza żądania, z którego należy wyodrębnić informacje do oceny na podstawie podanych wyrażeń regularnych.

Nie dotyczy Wymagane

Element <Variable>

Określa, że informacje muszą zostać wyodrębnione z danej zmiennej i sprawdzone pod kątem podanych wyrażeń regularnych.

<Variable name="request.content">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</Variable>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
nazwa

Nazwa zmiennej, z której należy wyodrębnić informacje do oceny na podstawie podanych wyrażeń regularnych.

Nie dotyczy Wymagane

Element <XMLPayload>

Określa, że informacje muszą zostać wyodrębnione z ładunku XML i sprawdzone pod kątem podanych wyrażeń regularnych.

<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>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Element <XMLPayload>/<Namespaces>

Określa przestrzenie nazw, które mają być używane w ocenie 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>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Ciąg znaków

Element <XMLPayload>/<Namespaces>/<Namespace>

Określa każdą przestrzeń nazw, która ma być używana w ocenie XPath.
<Namespaces>
   <Namespace prefix="apigee">http://www.apigee.com</Namespace>
</Namespaces>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Ciąg znaków

Atrybuty

Atrybut Opis Domyślny Obecność
prefiks

Zawiera prefiks, który pomaga określić daną przestrzeń nazw.

Nie dotyczy Wymagane

Element <XMLPayload>/<XPath>

Określa wyrażenie XPath do oceny.
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Element <XMLPayload>/<XPath>/<Expression>

Określa wyrażenie XPath zdefiniowane dla zmiennej. Obsługiwane są tylko wyrażenia XPath 1.0. Na przykład <Expression>/company/employee[@age>=$request.header.age]</Expression> wyodrębnia szczegóły pracowników, których wiek jest większy lub równy wartości podanej w request.header.age.
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Ciąg znaków

Element <XMLPayload>/<XPath>/<Type>

Określa typ danych.
<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
Domyślnie: tekst
Obecność: Opcjonalny
Typ: Ciąg znaków
Prawidłowe wartości:

Ciąg tekstowy. Prawidłowe wartości to string, boolean, int, long, float, doublenodeset.

Element <XMLPayload>/<XPath>/<Pattern>

Definiuje wzorzec wyrażenia regularnego. Jeśli wyrażenie regularne w elemencie Twojego<Pattern> pliku zawiera znaki zarezerwowane w XML (", &, ', < lub .), musisz je zakodować w XML przed dodaniem.

<XPath>
   <Expression>/apigee:Greeting/apigee:User</Expression>
   <Type>string</Type>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</XPath>
Domyślnie: Nie dotyczy
Obecność: Wymagane
Typ: Ciąg znaków

Element <JSONPayload>

Określa, że informacje muszą zostać wyodrębnione z ładunku JSON i ocenione na podstawie podanych wyrażeń regularnych.

<JSONPayload>
   <JSONPath>
      <Expression>$.store.book[*].author</Expression>
      <Pattern>REGEX PATTERN</Pattern>
      <Pattern>REGEX PATTERN</Pattern>
   </JSONPath>
</JSONPayload>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Nie dotyczy

Atrybuty

Atrybut Opis Domyślny Obecność
escapeSlashCharacter

Ustaw wartość true, aby zmienić znaczenie wszystkich znaków ukośnika prawego (/) w wyrażeniach regularnych w <JSONPath>/<Pattern>.

prawda Opcjonalny

Element <JSONPayload>/<JSONPath>/<Expression>

Określa wyrażenie JSONPath zdefiniowane dla zmiennej.

<JSONPath>
   <Expression>$.store.book[*].author</Expression>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</JSONPath>
Domyślnie: Nie dotyczy
Obecność: Opcjonalny
Typ: Ciąg znaków

Element <JSONPayload>/<JSONPath>/<Pattern>

Definiuje wzorzec wyrażenia regularnego. Jeśli wyrażenie regularne w elemencie <Pattern> zawiera znaki zarezerwowane w XML (", &, ', < lub .), musisz je zakodować w XML przed dodaniem.

<JSONPath>
   <Expression>$.store.book[*].author</Expression>
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</JSONPath>
Domyślnie: Nie dotyczy
Obecność: Wymagane
Typ: Ciąg znaków

Odwołanie do błędu

W tej sekcji opisujemy kody błędów, zwracane komunikaty i zmienne błędów ustawione przez Edge, gdy ta zasada wywołuje błąd. Te informacje są ważne, aby wiedzieć, czy opracowujesz reguły dotyczące błędów w przypadku błędów. Jeśli chcesz przechwycić błąd i zgłosić własny błąd niestandardowy, ustaw atrybut continueOnError="true" w głównym elemencie zasad. Więcej informacji znajdziesz w sekcjach Co musisz wiedzieć o błędach zasad i Postępowanie w przypadku błędów.

Błędy zwracane z zasad Edge mają spójny format opisany w Informacjach na temat kodów błędów.

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu przekaz,
ExecutionFailed Nie udało się wykonać definicji kroku RegularExpressionProtection {0}. Przyczyna: {1}
InstantiationFailed Nie udało się utworzyć instancji kroku definicji kroku RegularExpressionProtection {0}
NonMessageVariable Zmienna {0} nie przyjmuje wartości do komunikatu
SourceMessageNotAvailable Komunikat {0} nie jest dostępny dla określenia kroków definicji kroków RegularExpressionProtection {1}
ThreatDetected Wykryto zagrożenie związane z wyrażeniem regularnym w {0}: wyrażenie regularne: {1} wejściowe: {2}
VariableResolutionFailed Nie udało się znaleźć zmiennej {0}

Błędy wdrażania

Kod błędu przekaz, Napraw
CannotBeConvertedToNodeset RegularExpressionProtection {0}: wynik funkcji xpath {1} nie może zostać przekonwertowany na zbiór węzłów. Kontekst {2}
DuplicatePrefix RegularExpressionProtection {0}: zduplikowany prefiks {1}
EmptyJSONPathExpression RegularExpressionProtection{0}: puste wyrażenie JSONPath
EmptyXPathExpression RegularExpressionProtection{0}: puste wyrażenie XPath
InvalidRegularExpression RegularExpressionProtection {0}: nieprawidłowe wyrażenie regularne {1}, kontekst {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: nie udało się skompilować obiektu jsonpath {1}. Kontekst {2}
NONPusty przedrostek mapowany do pustego identyfikatora URI RegularExpressionProtection {0}: niepustego prefiksu {1} nie można zmapować na pusty identyfikator URI
NoPatternsToEnforce RegularExpressionProtection {0}: brak wzorców do wyegzekwowania w {1}
NothingToEnforce RegularExpressionProtection{0}: co najmniej jedna z tych wartości: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload
XPathCompilationFailed RegularExpressionProtection {0}: nie udało się skompilować pliku xpath {1}. Kontekst {2}

Zmienne błędów

Te zmienne są ustawiane, gdy zasada wywołuje błąd. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z naruszeniem zasad.

Zmienne Gdzie Przykład
fault.name="fault_name" fault_name to nazwa błędu podana w tabeli powyżej. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

Schematy

Powiązane artykuły

Zasady ochrony przed zagrożeniami JSON

Zasady ochrony przed zagrożeniami w XML