Résoudre les erreurs d'exécution de la règle XMLThreatProtection

Vous consultez la documentation d'Apigee Edge.
Accéder à la documentation sur Apigee X
en savoir plus

ExecutionFailed

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition policy_name:
        Execution failed. Reason: error_description at line line_num
        (possibly around char char_num)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: Premature end of document while parsing at line 5(possibly  around char 0)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Types d'erreurs et causes possibles

La règle XMLThreatProtection peut générer de nombreux types d'erreurs ExecutionFailed. Le tableau ci-dessous répertorie les différents types d'erreurs et leurs causes possibles :

Erreur Cause
ElementNameExceeded La longueur maximale de chaîne autorisée dans une balise XML est dépassée.
ChildCountExceeded Le nombre maximal d'éléments enfants autorisé dans une charge utile XML est dépassé.
NodeDepthExceeded La profondeur maximale des éléments XML autorisée dans une charge utile XML est dépassée.
AttributeCountExceeded Le nombre maximal d'attributs autorisé dans un seul élément est dépassé.
AttributeNameExceeded La longueur maximale autorisée pour un nom d'attribut est dépassée.
AttributeValueExceeded La longueur maximale autorisée pour une valeur d'attribut est dépassée.
TextExceeded La longueur maximale autorisée pour un texte est dépassée.
CommentExceeded La longueur maximale autorisée pour un commentaire est dépassée.
PIDataExceeded La longueur maximale des données d'instructions de traitement autorisée est dépassée.
PITargetExceeded La longueur maximale du nom de l'instruction de traitement autorisée est dépassée.
NSURIExceeded La longueur maximale de l'URL de l'espace de noms est dépassée.
NSPrefixExceeded La longueur maximale du préfixe de l'espace de noms est dépassée.
NSCountExceeded Le nombre maximal autorisé d'espaces de nom utilisés dans un seul élément est dépassé.
InvalidXMLPayload La charge utile d'entrée XML n'est pas valide.

ElementNameExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

Le trafic de l'environnement d'exécution renvoie un code de réponse 500 avec l'erreur suivante :

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition policy_name:
        Execution failed. reason: XMLThreatProtection stepDefinition policy_name:
        Element name length exceeded num at line line_num(possibly
        around char char_num)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Element name length exceeded 5 at line 1(possibly around char 9)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile d'entrée spécifiée par l'élément <Source> de la règle contient des éléments XML qui dépassent la longueur maximale spécifiée dans l'élément <Element> sous l'élément <NameLimits>.

Par exemple, cette erreur est générée si l'élément <Element> est spécifié en tant que 5 dans la règle XMLThreatProtection, mais que la charge utile d'entrée contient un élément comportant plus de cinq caractères.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection, le numéro de ligne et le nombre de caractères possible dans la charge utile d'entrée où la longueur de l'élément a été dépassée.

    Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1,, le numéro de ligne dans la charge utile est 1 et le nombre de caractères possible est 9..

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Element name
    length exceeded 5 at line 1(possibly around char 9)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément <Element>.

    Par exemple, dans la règle XMLThreatProtection suivante, <Element> est défini sur 5 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>5</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>5</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur de l'élément de cette ligne est supérieure à la valeur spécifiée pour l'élément <Element> (identifiée à l'étape 2). Si la longueur de l'élément dépasse cette valeur, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <company>
      <name>Google</name>
      <country>USA</country>
    </company>
    

    La charge utile XML indiquée ci-dessus contient un élément racine nommé company à la ligne 1 qui comporte sept caractères. Comme la longueur de l'élément est supérieure à 5 (la valeur spécifiée pour l'élément <Element>), vous obtenez l'erreur suivante :

    XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition
    XML-Threat-Protection-1: Element name length exceeded 5 at line 1(possibly around char 9)
    

Solution

Si la règle XMLThreatProtection vise à protéger contre les charges utiles dont le nom d'élément dépasse la valeur définie, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous décidez que les éléments plus longs peuvent être spécifiés dans la charge utile sans aucune conséquence, remplacez <Element> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez pouvoir autoriser une longueur d'élément jusqu'à 10, modifiez la règle XMLThreatProtection de la façon suivante :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>5</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

ChildCountExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition policy_name:
        Execution failed. reason: XMLThreatProtection stepDefinition policy_name:
        Children count exceeded num at line  num(possibly
        around char num)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Children count exceeded 3 at line 5(possibly around char 89)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> contient un élément XML qui contient plus d'éléments enfants que la valeur spécifiée dans l'élément <ChildCount> de la règle.

Par exemple, si la valeur de l'élément <ChildCount> est 3 et que la charge utile XML d'entrée comporte un élément qui contient plus de trois éléments enfants, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne dans lequel le nombre d'entrées est dépassé. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 5 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Children
    count exceeded 3 at line 5(possibly around char 89)"
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément <ChildCount>.

    Dans l'exemple de règle suivant, <ChildCount> est défini sur 3 (notez que les commentaires, les éléments inclus et d'autres éléments sont pris en compte dans cette limite) :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>5</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si le nombre d'éléments enfants (y compris tous les commentaires, etc.) dans la charge utile est supérieur à la valeur spécifiée pour l'élément <ChildCount> (identifiée à l'étape 2). Si le nombre d'éléments enfants dépasse la valeur de l'élément ChildCount, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <movie>
      <title>Jurassic Park</title>
      <language>English</language>
      <country>USA</country>
      <director>Steven Spielberg</director>
    </movie>
    

    Dans la charge utile XML présentée ci-dessus, la ligne 5 contient un quatrième élément enfant <director> de l'élément racine <movie>. Comme le nombre d'éléments enfants dans la charge utile XML d'entrée est supérieur à 3 (la valeur spécifiée pour l'élément <ChildCount>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Children
    count exceeded 3 at line 5(possibly around char 89)
    

Solution

Si la règle XMLThreatProtection vise à protéger contre les charges utiles présentant un nombre d'éléments enfants qui dépasse un seuil spécifique, le message d'erreur est attendu. Dans ce cas, aucune action supplémentaire n'est requise de votre part.

Toutefois, si vous pensez qu'un grand nombre d'éléments enfants (y compris des commentaires, etc.) peut être inclus dans la charge utile sans aucune conséquence, remplacez l'élément <ChildCount> par une valeur appropriée en fonction de vos besoins.

Par exemple, si vous pensez pouvoir autoriser jusqu'à 10 éléments enfants, modifiez la règle XMLThreatProtection comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>5</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">10</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NodeDepthExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Node depth exceeded [num] at line [num](possibly around
        char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Node depth exceeded 5 at line 6(possibly around char 110)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> contient un document XML dont la hiérarchie des nœuds dépasse le nombre spécifié dans l'élément <NodeDepth> de la règle XMLThreatProtection.

Par exemple, si l'élément <NodeDepth> est spécifié comme 4 dans la règle, mais que la charge utile d'entrée a une profondeur de nœud supérieure à 4, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où la profondeur du nœud est dépassée. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 6 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Node depth
    exceeded 5 at line 6(possibly around char 109)
    
  2. Examinez la règle XMLThreatProtection ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément <NodeDepth>.

    Dans l'exemple de règle XMLThreatProtection suivant, <NodeDepth> est défini sur 5 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>5</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la profondeur du nœud spécifiée est supérieure au nombre indiqué dans l'élément <NodeDepth> (identifié à l'étape 2). Si le niveau des éléments enfants XML dépasse le nombre, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <hellos>
       <hello1>
           <wave1>
                <wave2>
                    <wave3>
                        <wave4>
                           <wave5>wave</wave5>
                        </wave4>
                    </wave3>
                </wave2>
           </wave1>
       </hello1>
       <hello2>world2</hello2>
       <hello3>world3</hello3>
       <hello4>world4</hello4>
       <hello5>world5</hello5>
       <hello6>world6</hello6>
    </hellos>
    

    La charge utile XML affichée ci-dessus à la ligne 6 a une profondeur de nœud de 6. Comme la profondeur de nœud est supérieure à 5 (la valeur spécifiée pour l'élément <NodeDepth>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Node depth
    exceeded 5 at line 6(possibly around char 109)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles présentant un seuil de profondeur de nœud spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez qu'une plus grande profondeur de nœud peut être autorisée, remplacez <NodeDepth> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez pouvoir autoriser jusqu'à 10 nœuds, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

AttributeCountExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Attribute count exceeded [num] at line [num](possibly around
        char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Attribute count exceeded 2 at line 3(possibly around char 105)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel le nombre d'attributs d'un seul élément dépasse le nombre spécifié dans l'élément <AttributeCountPerElement> de la règle.

Par exemple, si l'élément <AttributeCountPerElement> est spécifié en tant que 2 dans la règle XMLThreatProtection , mais que la charge utile d'entrée contient un élément comportant plus de deux attributs, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où le nombre d'attributs est dépassé. Par exemple, dans le message d'erreur suivant, le nom de la règle est XMLThreat-Protection-1 et le numéro de ligne dans la charge utile est 3 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    count exceeded 2 at line 3(possibly around char 105)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément <AttributeCountPerElement>.

    Dans l'exemple de stratégie suivant, <AttributeCountPerElement> est défini sur 2 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si le nombre d'attributs spécifiés dépasse le nombre spécifié dans l'élément <AttributeCountPerElementh> (identifié à l'étape 2). Si le nombre d'attributs dépasse le nombre spécifié, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking" cuisine="Indian" lang="en">
        <title>Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    </bookstore>
    

    La charge utile XML indiquée ci-dessus à la ligne 3 contient un élément doté de trois attributs. Étant donné que le nombre d'attributs est supérieur à 2 (la valeur spécifiée pour l'élément <AttributeCountPerElement>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    count exceeded 2 at line 3(possibly around char 105)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant un nombre spécifique d'attributs, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser un plus grand nombre d'attributs, remplacez <AttributeCountPerElement> par une valeur appropriée en fonction de vos besoins.

Par exemple, si vous pensez pouvoir autoriser jusqu'à cinq attributs par élément, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

AttributeNameExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Attribute name length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Attribute name length exceeded 5 at line 3(possibly around char 105)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel le nom d'un attribut dépasse le nombre de caractères spécifié dans l'élément enfant <Attribute> de l'élément <NameLimits> de la règle.

Par exemple, si l'élément <Attribute> est défini sur 5 dans la règle, mais que la charge utile d'entrée comporte un nom d'attribut de plus de cinq caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où la longueur du nom d'attribut est dépassée. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 3 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    name length exceeded 5 at line 3(possibly around char 105)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément <Attribute>.

    Dans l'exemple de règle XMLThreatProtection suivant, <Attribute> est défini sur 5 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur de l'attribut spécifié contient plus de caractères que le nombre spécifié dans l'élément <Attribute> (identifié à l'étape 2). Si le nombre de caractères est supérieur à la valeur de l'attribut, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking" cuisine="Indian" lang="en">
        <title>Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    </bookstore>
    

    La charge utile XML indiquée ci-dessus à la ligne 3 comporte deux attributs category et cuisine, dont le nom comprend respectivement 8 caractères et 7 caractères. Comme la longueur du nom de l'attribut est supérieure à 5 (la valeur spécifiée pour l'élément <Attribute>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    name length exceeded 5 at line 3(possibly around char 105)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant une longueur de nom d'attribut spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez qu'un nom d'attribut plus long peut être autorisé, remplacez <Attribute> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir des noms d'attributs de 10 caractères maximum, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

AttributeValueExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:  Attribute value length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Attribute value length exceeded 10 at line 3(possibly around char 111)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle contient un document XML dans lequel une valeur d'attribut dépasse le nombre de caractères spécifié dans l'élément enfant <Attribute> de l'élément <ValueLimits>.

Par exemple, si l'élément <Attribute> est défini sur 10 dans la règle XMLThreatProtection, mais que la charge utile d'entrée a une valeur d'attribut de plus de 10 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où le nombre d'attributs est dépassé. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 3 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    value length exceeded 10 at line 3(possibly around char 111)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <Attribute> de l'élément <ValueLimits>.

    Dans l'exemple de règle XMLThreatProtection suivant, <Attribute> est défini sur 10 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur de la valeur d'attribut spécifiée contient plus de caractères que le nombre spécifié dans l'élément <Attribute> (identifié à l'étape 2). Si le nombre de caractères est supérieur à la valeur de l'attribut, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking" cuisine="South Indian" lang="en">
        <title>Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    </bookstore>
    

    La charge utile XML indiquée ci-dessus à la ligne 3 comporte un attribut (cuisine) d'une longueur de 12 caractères. Comme la longueur de la valeur d'attribut est supérieure à 10 (la valeur spécifiée pour l'élément <Attribute>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Attribute
    value length exceeded 10 at line 3(possibly around char 111)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles qui dépassent une longueur de valeur d'attribut spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser des valeurs d'attribut plus longues, remplacez l'élément enfant <Attribute> de l'élément <ValueLimits> par une valeur appropriée en fonction de vos besoins.

Par exemple, si vous pensez être en mesure d'attribuer des valeurs de 15 caractères maximum, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

TextExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:  Text length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Text length exceeded 15 at line 4(possibly around char 66)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par la règle XMLThreatProtection<Source> contient un document XML dans lequel la longueur du texte d'un élément dépasse le nombre de caractères spécifié dans l'élément enfant <Text> de l'élément <ValueLimits> de la règle.

Par exemple, si l'élément <Text> est défini sur 15 dans la règle, mais que la charge utile d'entrée contient un texte de plus de 15 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où le nombre d'attributs est dépassé. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 4 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Text length
    exceeded 15 at line 4(possibly around char 66)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <Text> de l'élément <ValueLimits>.

    Dans l'exemple de règle XMLThreatProtection suivant, <Text> est défini sur 15 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur de la valeur d'attribut spécifiée contient plus de caractères que le nombre spécifié dans l'élément <Text> (identifié à l'étape 2). Si le nombre de caractères est supérieur à la valeur de l'attribut, il s'agit de la cause de l'erreur.

    <food>
      <name>Veg Sandwich</name>
      <price>$5.95</price>
      <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description>
      <calories>650</calories>
    </food>
    

    La charge utile XML indiquée ci-dessus à la ligne 4 comporte du texte d'une longueur de 53 caractères. Comme la longueur de la valeur d'attribut est supérieure à 15 (la valeur spécifiée pour l'élément <Text>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Text length
    exceeded 15 at line 4(possibly around char 66)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant une longueur de texte spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser des textes plus longs, modifiez l'élément enfant <Text> de l'élément <ValueLimits> sur une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir des valeurs d'attribut de 60 caractères maximum, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>60</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

CommentExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Comment length exceeded [num] at line [num](possibly around char
        [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Comment length exceeded 10 at line 2(possibly around char 48)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel la longueur du commentaire dépasse le nombre de caractères spécifié dans l'élément enfant <Comment> de l'élément <ValueLimits> de la règle.

Par exemple, si l'élément <Comment> est défini sur 10 dans la règle, mais que la charge utile d'entrée comporte un commentaire de plus de 10 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où la longueur du commentaire est dépassée. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne de la charge utile est 2 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Comment length exceeded 10 at line 2(possibly around char 48)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <Comment> de l'élément <ValueLimits>.

    Dans l'exemple de règle XMLThreatProtection suivant, <Comment> est défini sur 10 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur du commentaire spécifié contient plus de caractères que le nombre spécifié dans l'élément <Comment> (identifié à l'étape 2). Si le nombre de caractères est supérieur à la valeur de l'attribut, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <food>
      <!--This is somewhat a long comment-->
      <name>Veg Sandwich</name>
      <price>$5.95</price>
      <description>Vegetarian Sandwich with onions, tomatoes and lettuce</description>
      <calories>650</calories>
    </food>
    

    La charge utile XML indiquée ci-dessus à la ligne 2 comporte un commentaire d'une longueur de 31 caractères. Comme la longueur du commentaire est supérieure à 10 (la valeur spécifiée pour l'élément <Comment>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Comment length
    exceeded 10 at line 2(possibly around char 48)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant une longueur de commentaire spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser un commentaire plus long, remplacez l'élément enfant <Comment> de l'élément <ValueLimits> par une valeur appropriée en fonction de vos besoins.

Par exemple, si vous pensez pouvoir attribuer des valeurs de 40 caractères maximum, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>40</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

PIDataExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Processing Instruction data length exceeded [num] at line
        [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Processing Instruction data length exceeded 30 at line 2(possibly around char 109)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel une instruction de traitement des données dépasse le nombre de caractères spécifié dans l'élément enfant <ProcessingInstructionData> de l'élément <ValueLimits> de la règle.

Par exemple, si l'élément <ProcessingInstructionData> est défini sur 10 dans la règle XMLThreatProtection, mais que la charge utile d'entrée contient une instruction de traitement de plus de 10 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où la longueur de l'instruction de traitement est dépassée. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 2 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction data length exceeded 30 at line 2(possibly around char 109)
    
  2. Examinez la règle ayant échoué (identifié à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <ProcessingInstructionData> de l'élément <ValueLimits>.

    Dans l'exemple de règle XMLThreatProtection suivant, <ProcessingInstructionData> est défini sur 30 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur des données d'instructions de traitement contient plus de caractères que le nombre spécifié dans l'élément <ProcessingInstructionData> (identifié à l'étape 2). Si le nombre de caractères dépasse la longueur des données d'instructions de traitement, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?xml-stylesheet type="text/xsl" href="mobilephones.xsl"?>
    <mobilephones>
      <mobilephone>
          <name>iPhone</name>
          <price>$600</price>
      </mobilephone>
      <mobilephone>
          <name>Samsung</name>
          <price>$500</price>
      </mobilephone>
    </mobilephones>
    

    La charge utile XML présentée ci-dessus à la ligne 1 comporte un élément de données d'instructions de traitement type="text/xsl" href="mobilephones.xsl"?) avec une longueur de 40 caractères. Comme cette longueur est supérieure à 30 (la valeur spécifiée pour l'élément <ProcessingInstructionData>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction data length exceeded 30 at line 2(possibly around char 109)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant une longueur de données d'instruction de traitement spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser des éléments de données d'instructions plus longs, remplacez l'élément enfant <ProcessingInstructionData> de l'élément <ValueLimits> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir des longueurs d'instructions de traitement des données comportant jusqu'à 50 caractères, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>10</NamespaceURI>
        <Comment>40</Comment>
        <ProcessingInstructionData>50</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

PITargetExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Processing Instruction target length exceeded [num] at line [num](possibly around
        char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Processing Instruction target length exceeded 10 at line 2(possibly around char 114)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel une cible d'instructions de traitement dépasse le nombre de caractères spécifié dans l'élément enfant <ProcessingInstructionTarget> de l'élément <NameLimits> de la règle.

Par exemple, si l'élément <ProcessingInstructionTarget> est défini sur 10 dans la règle XMLThreatProtection, mais que la charge utile d'entrée possède une instruction de traitement cible comportant plus de 10 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection ainsi que le numéro de la ligne dans laquelle le nombre de caractères de l'instruction de traitement cible est dépassé. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 1 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction target length exceeded 10 at line 2(possibly around char 114)
    
  2. Examinez la règle XMLThreatProtection (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <ProcessingInstructionTarget> de l'élément <NameLimits.

    Dans l'exemple de règle XMLThreatProtection suivant, <ProcessingInstructionTarget> est défini sur 10 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur de l'instruction de traitement cible contient plus de caractères que le nombre spécifié dans l'élément <ProcessingInstructionTarget> (identifié à l'étape 2). Si le nombre de caractères dépasse la limite de taille cible, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <?xml-stylesheet type="text/xsl" href="mobilephones.xsl"?>
    <mobilephones>
      <mobilephone>
          <name>iPhone</name>
          <price>$600</price>
      </mobilephone>
      <mobilephone>
          <name>Samsung</name>
          <price>$500</price>
      </mobilephone>
    </mobilephones>
    

    La charge utile XML indiquée ci-dessus à la ligne 2 contient un nom d'instruction de traitement cible "xml-stylesheet"" d'une longueur de 14 caractères. Comme le nom de l'instruction de traitement cible est supérieur à 10 (la valeur spécifiée pour l'élément <ProcessingInstructionTarget>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Processing
    Instruction target length exceeded 10 at line 2(possibly around char 114)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant une longueur de cible d'instruction de processus spécifique, le message d'erreur est alors attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez qu'une instruction de traitement peut être plus longue, remplacez l'élément enfant <ProcessingInstructionTarget> de l'élément <NameLimits> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir des instructions de traitement cibles comportant jusqu'à 25 caractères, modifiez la règle comme suit :

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>15</NamespacePrefix>
    <ProcessingInstructionTarget>25</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
  </XMLThreatProtection>

NSURIExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]: Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:  Namespace uri length length exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Namespace uri length exceeded 10 at line 2(possibly around char 97)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel un URI d'espace de noms dépasse le nombre de caractères spécifié dans l'élément enfant <NamespaceURI> <ValueLimits> de la règle.

Par exemple, si l'élément <NamespaceURI> est défini sur 10 dans la règle, mais que la charge utile d'entrée possède un URI d'espace de noms de plus de 10 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où la longueur de l'URI de l'espace de noms est dépassée. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne dans la charge utile est 2 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    uri length exceeded 10 at line 2(possibly around char 97)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <NamespaceURI> de l'élément <ValueLimits.

    Dans l'exemple de règle XMLThreatProtection suivant, <NamespaceURI> est défini sur 10 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>5</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>2</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>15</Text>
            <Attribute>10</Attribute>
            <NamespaceURI>10</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>10</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur de l'URI de l'espace de noms spécifié comporte plus de caractères que le nombre spécifié dans l'élément <NamespaceURI> (identifié à l'étape 2). Si le nombre de caractères dépasse la longueur de l'URI de l'espace de noms, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version = "1.0" encoding = "UTF-8"?>
      <profile:user xmlns:profile = "www.google.com/profile">
      <profile:name>Rama Krishna</profile:name>
      <profile:company>Google</profile:company>
      <profile:phone>(91) 9876543210</profile:phone>
    </profile:user>
    

    La charge utile XML indiquée ci-dessus à la ligne 2 possède un URI d'espace de noms, www.google.com/profile, d'une longueur de 22 caractères. Comme la longueur de l'URI de l'espace de noms est supérieure à 10 (la valeur spécifiée pour l'élément <NamespaceURI>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    uri length exceeded 10 at line 2(possibly around char 99)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles ayant dépassé une longueur d'URI d'espace de noms spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser un URI d'espace de noms plus long, remplacez l'élément enfant <NamespaceURI> de l'élément <ValueLimits> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir des URI d'espace de noms comportant jusqu'à 30 caractères, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>30</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NSPrefixExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Namespace prefix length exceeded [num] at line [num](possibly
        around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Namespace prefix length exceeded 10 at line 2(possibly around char 105)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> contient un document XML dans lequel un préfixe d'espace de noms dépasse le nombre de caractères spécifié dans l'élément enfant <NamespacePrefix> de l'élément <NameLimits> de la règle.

Par exemple, si l'élément <NamespacePrefix> est défini sur 10 dans la règle XMLThreatProtection, mais que la charge utile d'entrée possède un préfixe d'espace de noms de plus de 10 caractères, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où la longueur du préfixe URI de l'espace de noms est dépassée. Par exemple, dans le message d'erreur suivant, le nom de la règle est XML-Threat-Protection-1 et le numéro de ligne de la charge utile est 2 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    prefix length exceeded 10 at line 2(possibly around char 105)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <NamespacePrefix> de l'élément <NameLimits.

    Dans l'exemple de règle XMLThreatProtection suivant, <NamespacePrefix> est défini sur 10 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si la longueur du préfixe de l'espace de noms spécifié contient plus de caractères que le nombre spécifié dans l'élément <NamespacePrefix> (identifié à l'étape 2). Si le nombre de caractères dépasse la limite de préfixe d'espace de noms, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version = "1.0" encoding = "UTF-8"?>
    <userprofile:user xmlns:userprofile = "www.googlecom/profile">
      <userprofile:name>Rama Krishna</userprofile:name>
      <userprofile:company>Google</userprofile:company>
      <userprofile:phone>(011) 123-4567</userprofile:phone>
    </userprofile:user>
    

    La charge utile XML indiquée ci-dessus à la ligne 2 comporte le préfixe d'espace de noms userprofile d'une longueur de 11 caractères. Comme la longueur du préfixe URI de l'espace de noms est supérieure à 10 (la valeur spécifiée pour l'élément <NamespacePrefix>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    prefix length exceeded 10 at line 2(possibly around char 105)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant une longueur de préfixe d'URI d'espace de noms spécifique, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser un préfixe d'URI d'espace de noms plus long, remplacez l'élément enfant <NamespacePrefix> de l'élément <NameLimits> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir des préfixes d'URI d'espace de noms comportant jusqu'à 15 caractères, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>5</Attribute>
        <NamespacePrefix>15</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>2</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>15</Text>
        <Attribute>10</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>10</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NSCountExceeded

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. reason: XMLThreatProtection stepDefinition [policy_name]:
        Namespace count exceeded [num] at line [num](possibly around char [num])",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed. reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count exceeded 3 at line 2(possibly around char 234)",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifiée par l'élément <Source> de la règle XMLThreatProtection contient un document XML dans lequel le nombre d'espaces de noms utilisés dans un seul élément dépasse le nombre spécifié dans l'élément enfant <NamespaceCountPerElement> de l'élément <StructureLimits> de la règle.

Par exemple, si l'élément <NamespaceCountPerElement> est défini sur 3 dans la règle, mais que la charge utile d'entrée contient un élément comportant plus de trois espaces de noms, cette erreur est générée.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle XMLThreatProtection et le numéro de ligne où le nombre d'espaces de noms est dépassé. Par exemple, dans le message d'erreur suivant, le nom de la règle est XMLThreat-Protection-1 et le numéro de ligne dans la charge utile est 2 :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace count
    exceeded 3 at line 2(possibly around char 234)
    
  2. Examinez la règle ayant échoué (identifiée à l'étape 1) et notez la valeur spécifiée dans l'élément enfant <NamespaceCountPerElement> de l'élément <StructureLimits.

    Dans l'exemple de règle XMLThreatProtection suivant, <NamespaceCountPerElement> est défini sur 3 :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>request</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    
  3. Examinez le numéro de ligne spécifique (identifié à l'étape 1) de la charge utile d'entrée et vérifiez si le nombre d'espaces de noms spécifiés pour un seul élément est supérieur au nombre spécifié dans l'élément <NamespaceCountPerElement> (identifié à l'étape 2). Si le nombre d'espaces de noms dépasse la limite de nombre d'espaces de noms par élément, il s'agit de la cause de l'erreur.

    Voici un exemple de charge utile d'entrée :

    <?xml version = "1.0" encoding = "UTF-8"?>
    <hellos xmlns:h="https://www.w3schools.com/greeting1" xmlns:a="https://www.w3schools.com/greeting2" xmlns:b="https://www.w3schols.com/greeting3" xmlns:c="https://www.w3schools.com/greeting4">
        <a:hello1>world1</a:hello1>
        <b:hello2>world2</b:hello2>
        <c:hello2>world2</c:hello2>
        <h:hello2>world2</h:hello2>
    </hellos>
    

    La charge utile XML indiquée ci-dessus à la ligne 2 comporte plus de trois espaces de noms. Comme le nombre d'espaces de noms est supérieur à 3 (la valeur spécifiée pour l'élément <NamespaceCountPerElement>), vous obtenez l'erreur suivante :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: XMLThreatProtection stepDefinition XML-Threat-Protection-1: Namespace
    count exceeded 3 at line 2(possibly around char 234)
    

Solution

Si la règle XMLThreatProtection vise à se protéger contre les charges utiles dépassant un nombre spécifique d'espaces de noms dans un seul élément, le message d'erreur est attendu. Dans ce cas, aucune autre action n'est requise.

Toutefois, si vous pensez pouvoir autoriser un grand nombre d'espaces de noms, remplacez l'élément enfant <NamespaceCountPerElement> de l'élément <StructureLimits> par une valeur adaptée à vos besoins.

Par exemple, si vous pensez avoir jusqu'à cinq espaces de noms dans un seul élément, modifiez la règle comme suit :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>5</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>20</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>30</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

InvalidXMLPayload

Code d'erreur

steps.xmlthreatprotection.ExecutionFailed

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition [policy_name]:
        Execution failed. Reason: [error_description]",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Execution failed. reason: Syntax error while parsing XML prologue",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.ExecutionFailed"
        }
    }
}

Cause

Cette erreur se produit si la charge utile du message d'entrée spécifié par l'élément <Source> de la règle XMLThreatProtection n'est pas un document XML valide.

Diagnostic

  1. Examinez le message d'erreur pour identifier le nom de la règle où l'erreur s'est produite. Dans l'exemple suivant, le nom de la règle est XML-Threat-Protection-1.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: Syntax error while parsing XML prologue
    
  2. Examinez la charge utile d'entrée et vérifiez que le document XML transmis dans la charge utile est bien un document XML correctement formé ou non.

    Voici un exemple de charge utile d'entrée :

    <?xml version="1.0" encoding="UTF-8"?>
    <bookstore>
      <book category="cooking">
        <title lang="en">Easy Indian Cooking</title>
        <author>Suneeta</author>
        <year>2004</year>
        <price>300.00</price>
      </book>
    <bookstore>
    

    Dans la charge utile XML présentée ci-dessus, la ligne 9 ne ferme pas correctement l'élément racine, car le caractère / est absent. Comme la syntaxe XML est incorrecte, vous obtenez cette erreur :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: Syntax error while parsing XML prologue
    

Solution

Vérifiez la validité des charges utiles XML d'entrée transmises aux proxys d'API incluant la règle XMLThreatProtection.

Pour corriger l'exemple d'erreur décrit ci-dessus, modifiez la charge utile XML d'entrée comme suit :

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Easy Indian Cooking
    <author>Suneeta</author>
    <year>2004</year>
    <price>300.00</price>
  </book>
</bookstore>

SourceUnavailable

Code d'erreur

steps.xmlthreatprotection.SourceUnavailable

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition[policy_name]: Source[var_name] is not available"
        "detail": {
            "errorcode": "steps.xmlthreatprotection.SourceUnavailable"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "XMLThreatProtection stepDefinition XML-Threat-Protection-1:
        Source requests is not available",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.SourceUnavailable"
        }
    }
}

Cause

Cette erreur se produit si la variable message spécifiée dans l'élément <Source> de la règle XMLThreatProtection :

  • est hors de portée (non disponible dans le flux spécifique où la stratégie est exécutée)
  • n'est pas une des valeurs valides request, response ou message

Par exemple, cette erreur se produit si l'élément <Source> de la règle est défini sur une variable qui n'existe pas dans le flux où la règle est exécutée.

Diagnostic

  1. Identifiez le nom de la règle XMLThreatProtection et le nom de la variable source dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la règle XMLThreatProtection est XML-Threat-Protection-1 et la variable source est requests:.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    
  2. Examinez la règle XMLThreatProtection ayant échoué et vérifiez la valeur spécifiée pour l'élément <Source> identifié à l'étape 1.

    Dans l'exemple de règle XMLThreatProtection suivant, l'élément <Source> est défini sur requests.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>requests</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    

    Les valeurs valides pour l'élément <Source> sont request, response ou message.. Comme requests n'est pas une valeur valide et n'existe pas dans le flux où la règle s'exécute, vous obtenez cette erreur :

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    

Solution

Assurez-vous que la variable définie dans l'élément <Source> de la règle XMLThreatProtection est définie sur request, response ou message, et qu'elle existe dans le flux où la règle s'exécute.

Pour corriger l'exemple de règle présenté ci-dessus, vous pouvez modifier l'élément <Source> pour utiliser la variable request , car elle existe dans le flux de requête :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>request</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>20</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>30</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>

NonMessageVariable

Code d'erreur

steps.xmlthreatprotection.NonMessageVariable

Corps de la réponse d'erreur

{
    "fault": {
        "faultstring": "Variable var_name does not resolve to a Message"
        "detail": {
            "errorcode": "steps.xmlthreatprotection.NonMessageVariable"
        }
    }
}

Exemple de corps de réponse d'erreur

{
    "fault": {
        "faultstring": "Variable message.content does not resolve to a Message",
        "detail": {
            "errorcode": "steps.xmlthreatprotection.NonMessageVariable"
        }
    }
}

Cause

Cette erreur se produit si l'élément <Source> de la règle XMLThreatProtection est défini sur une variable qui n'est pas de type Message.

Les variables de type Message représentent des requêtes et des réponses HTTP entières. Les variables de flux intégrées d'Apigee Edge request, response et message sont de type Message. Pour en savoir plus sur les variables de message, consultez la documentation de référence sur les variables.

Diagnostic

  1. Identifiez le nom de la variable qui renvoie à une variable de type Message dans le message d'erreur. Par exemple, dans le message d'erreur suivant, le nom de la variable est message.content.

    Variable message.content does not resolve to a Message
    
  2. Examinez toutes les règles XMLThreatProtection ayant échoué dans le proxy d'API et identifiez la règle XMLThreatProtection spécifique où l'élément <Source> est spécifié avec le nom de variable identifié à l'étape 1 ci-dessus.

    Dans l'exemple de règle XMLThreatProtection suivant, <Source> est défini sur message.content :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
        <DisplayName>XML Threat Protection-1</DisplayName>
        <Properties/>
        <NameLimits>
            <Element>10</Element>
            <Attribute>10</Attribute>
            <NamespacePrefix>10</NamespacePrefix>
            <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
        </NameLimits>
        <Source>message.content</Source>
        <StructureLimits>
            <NodeDepth>10</NodeDepth>
            <AttributeCountPerElement>5</AttributeCountPerElement>
            <NamespaceCountPerElement>3</NamespaceCountPerElement>
            <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
        </StructureLimits>
        <ValueLimits>
            <Text>20</Text>
            <Attribute>15</Attribute>
            <NamespaceURI>40</NamespaceURI>
            <Comment>10</Comment>
            <ProcessingInstructionData>30</ProcessingInstructionData>
        </ValueLimits>
    </XMLThreatProtection>
    

    Comme la variable message.content n'est pas de type Message, vous obtenez l'erreur suivante :

    Variable message.content does not resolve to a Message
    

Solution

Vérifiez que l'élément <Source> de la règle XMLThreatProtection ayant échoué est défini sur une variable de flux de type Message qui existe dans le flux où la règle s'exécute.

Pour corriger la règle, vous pouvez modifier l'élément <Source> afin de spécifier une variable de type Message. Par exemple, dans la règle XMLThreatProtection ayant échoué, vous pouvez spécifier l'élément <Source> en tant que message :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
    <DisplayName>XML Threat Protection-1</DisplayName>
    <Properties/>
    <NameLimits>
        <Element>10</Element>
        <Attribute>10</Attribute>
        <NamespacePrefix>10</NamespacePrefix>
        <ProcessingInstructionTarget>10</ProcessingInstructionTarget>
    </NameLimits>
    <Source>message</Source>
    <StructureLimits>
        <NodeDepth>10</NodeDepth>
        <AttributeCountPerElement>5</AttributeCountPerElement>
        <NamespaceCountPerElement>3</NamespaceCountPerElement>
        <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount>
    </StructureLimits>
    <ValueLimits>
        <Text>20</Text>
        <Attribute>15</Attribute>
        <NamespaceURI>40</NamespaceURI>
        <Comment>10</Comment>
        <ProcessingInstructionData>30</ProcessingInstructionData>
    </ValueLimits>
</XMLThreatProtection>