Pemecahan masalah error runtime kebijakan XMLThreatProtection

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

ExecutionFailed

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Jenis Error dan kemungkinan penyebabnya

Kebijakan XMLThreatProtection dapat menampilkan berbagai jenis error ExecutionFailed. Tabel di bawah ini mencantumkan berbagai jenis error dan kemungkinan penyebabnya:

Error Penyebab
ElementNameExceeded Panjang string maksimum yang diizinkan dalam tag XML terlampaui.
ChildCountExceeded Jumlah maksimum elemen turunan yang diizinkan dalam payload XML terlampaui.
NodeDepthExceeded Kedalaman maksimum elemen XML yang diizinkan dalam payload XML terlampaui.
AttributeCountExceeded Jumlah atribut maksimum dalam satu elemen terlampaui.
AttributeNameExceeded Panjang maksimum yang diizinkan untuk suatu nama atribut terlampaui.
AttributeValueExceeded Melebihi panjang maksimum yang diizinkan untuk nilai atribut.
TextExceeded Panjang maksimum teks yang diizinkan terlampaui.
CommentExceeded Melebihi panjang maksimum yang diizinkan untuk komentar.
PIDataExceeded Panjang data petunjuk pemrosesan yang diizinkan terlampaui.
PITargetExceeded Panjang nama petunjuk proses terlampaui.
NSURIExceeded Panjang URL namespace terlampaui.
NSPrefixExceeded Panjang awalan namespace terlampaui.
NSCountExceeded Jumlah spasi nama yang digunakan dalam satu elemen terlampaui.
Payload XML tidak valid Payload XML input tidak valid.

ElementNameExceeded

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

Traffic runtime menampilkan kode respons 500 yang berisi error berikut:

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload input yang ditentukan oleh elemen <Source> kebijakan berisi elemen XML yang melebihi panjang maksimum yang ditentukan dalam elemen <Element> di bawah elemen <NameLimits>.

Misalnya, jika elemen <Element> ditetapkan sebagai 5 dalam kebijakan XMLThreatProtection, tetapi payload input memiliki elemen yang memiliki lebih dari 5 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection, nomor baris, dan kemungkinan nomor karakter dalam payload input yang panjang elemen terlampaui.

    Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1,nomor baris dalam payload adalah 1, dan nomor karakter yang mungkin adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi di Langkah 1) dan catat nilai yang ditentukan dalam elemen <Element>.

    Misalnya, dalam kebijakan XMLThreatProtection berikut, <Element> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang elemen pada baris tersebut lebih besar dari nilai yang ditentukan untuk elemen <Element> (yang diidentifikasi pada Langkah 2). Jika panjang elemen melebihi nilai ini, maka itulah penyebab error.

    Berikut adalah contoh payload input:

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

    Payload XML yang ditunjukkan di atas memiliki elemen root bernama company di baris 1 yang memiliki 7 karakter. Karena panjang elemen lebih besar dari 5 (nilai yang ditentukan untuk elemen <Element>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreadProtection ditujukan untuk melindungi dari payload dengan nama elemen yang melebihi nilai yang ditentukan, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa elemen yang lebih panjang dapat ditentukan dalam payload tanpa konsekuensi apa pun, ubah <Element> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat mengizinkan elemen hingga panjang 10, ubah kebijakan XMLThreatProtection sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> berisi elemen XML yang berisi lebih banyak elemen turunan daripada nilai yang ditetapkan dalam elemen <ChildCount> kebijakan.

Misalnya, jika elemen <ChildCount> adalah 3, tetapi payload XML input memiliki elemen dengan lebih dari 3 elemen turunan, error ini akan dilempar.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang melebihi jumlah entri. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi di Langkah 1) dan catat nilai yang ditentukan dalam elemen <ChildCount>.

    Dalam contoh kebijakan berikut, <ChildCount> disetel ke 3(perlu diperhatikan bahwa komentar, sertakan elemen, dan elemen lainnya diperhitungkan dalam batas ini):

    <?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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah jumlah elemen turunan (termasuk semua komentar, dll.) dalam payload lebih besar dari nilai yang ditentukan untuk elemen <ChildCount> (yang diidentifikasi di Langkah 2). Jika jumlah elemen turunan melebihi jumlah turunan, maka itulah penyebab error.

    Berikut adalah contoh payload input:

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

    Dalam payload XML yang ditampilkan di atas, baris 5 berisi elemen turunan keempat <director> dari elemen root <movie>. Karena jumlah elemen turunan dalam payload XML input lebih besar dari 3 (nilai yang ditentukan untuk elemen <ChildCount>), error berikut akan terjadi:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload dengan jumlah elemen turunan yang melebihi batas tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa lebih banyak elemen turunan (termasuk komentar, dll.) dapat disertakan dalam payload tanpa konsekuensi apa pun, ubah <ChildCount> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat mengizinkan hingga 10 elemen turunan, ubah kebijakan XMLThreatProtection sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> berisi dokumen XML dengan hierarki node melebihi jumlah yang ditentukan dalam elemen <NodeDepth> di kebijakan XMLThreatProtection.

Misalnya, jika elemen <NodeDepth> ditentukan sebagai 4 dalam kebijakan, tetapi payload input memiliki kedalaman node yang melebihi 4, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris tempat kedalaman node terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan XMLThreatProtection yang gagal (yang diidentifikasi di Langkah 1) dan catat nilai yang ditentukan dalam elemen <NodeDepth>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <NodeDepth> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah kedalaman node yang ditentukan memiliki jumlah yang lebih tinggi dari jumlah yang ditentukan dalam elemen <NodeDepth> (yang diidentifikasi pada Langkah 2). Jika tingkat elemen turunan XML melebihi jumlah, maka itulah penyebab error.

    Berikut adalah contoh payload input:

    <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>
    

    Payload XML yang ditampilkan di atas pada baris 6 memiliki kedalaman node 6.Karena kedalaman node lebih besar dari 5 (nilai yang ditentukan untuk elemen <NodeDepth>), Anda akan mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload dengan batas kedalaman node tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa kedalaman node yang lebih besar dapat diizinkan, ubah <NodeDepth> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat mengizinkan kedalaman node hingga 10, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan jumlah atribut dari satu elemen melebihi jumlah yang ditentukan dalam elemen <AttributeCountPerElement> kebijakan.

Misalnya, jika elemen <AttributeCountPerElement> ditetapkan sebagai 2 dalamkebijakan XMLThreatProtection, tetapi payload input memiliki elemen dengan lebih dari 2 atribut, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang memiliki jumlah atribut terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XMLThreat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi di Langkah 1), dan catat nilai yang ditentukan dalam elemen <AttributeCountPerElement>.

    Dalam contoh kebijakan berikut, <AttributeCountPerElement> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah jumlah atribut yang ditentukan melebihi jumlah yang ditentukan dalam elemen <AttributeCountPerElementh> (diidentifikasi pada Langkah 2). Jika jumlah atribut melebihi jumlah, berarti itulah penyebab error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas pada baris 3 memiliki elemen dengan tiga atribut. Karena jumlah atribut lebih besar dari 2 (nilai yang ditentukan untuk elemen <AttributeCountPerElement>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi jumlah atribut tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa lebih banyak atribut yang dapat diizinkan, ubah <AttributeCountPerElement>ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat mengizinkan sejumlah atribut per elemen hingga 5, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan nama atribut yang melebihi jumlah karakter yang ditetapkan dalam elemen turunan <Attribute> dari elemen <NameLimits> kebijakan.

Misalnya, jika elemen <Attribute> ditentukan sebagai 5 dalam kebijakan, tetapi payload input memiliki nama atribut dengan lebih dari 5 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang panjang nama atribut terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi di Langkah 1) dan catat nilai yang ditentukan dalam elemen <Attribute>

    Dalam contoh kebijakan XMLThreatProtection berikut, <Attribute> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang atribut yang ditentukan memiliki lebih banyak karakter daripada jumlah yang ditentukan dalam elemen <Attribute> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, maka itulah penyebab error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas pada baris 3 memiliki dua atribut category dan cuisine dengan panjang nama masing-masing 8 dan 7 karakter. Karena panjang nama atribut lebih besar dari 5 (nilai yang ditentukan untuk elemen <Attribute>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang nama atribut tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda memutuskan bahwa panjang nama atribut yang lebih panjang boleh digunakan, ubah <Attribute> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki nama atribut hingga 10 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan berisi dokumen XML dengan nilai atribut melebihi jumlah karakter yang ditentukan dalam elemen turunan <Attribute> elemen <ValueLimits>.

Misalnya, jika elemen <Attribute> ditentukan sebagai 10 dalam kebijakan XMLThreatProtection, tetapi payload input memiliki nilai atribut dengan lebih dari 10 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang memiliki jumlah atribut terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <Attribute> dari elemen <ValueLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <Attribute> disetel ke 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. Periksa nomor baris spesifik (yang diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang nilai atribut yang ditentukan memiliki lebih banyak karakter daripada jumlah yang ditentukan dalam elemen <Attribute> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, maka itulah penyebab error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas pada baris 3 memiliki atribut (masakan) dengan panjang nilai 12 karakter. Karena panjang nilai atribut lebih besar dari 10 (nilai yang ditentukan untuk elemen <Attribute>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang nilai atribut tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa nilai atribut yang lebih panjang dapat diizinkan, ubah elemen turunan <Attribute> dari elemen <ValueLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat mengatribusikan nilai hingga 15 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan panjang teks elemen melebihi jumlah karakter yang ditentukan dalam elemen turunan <Text> dari elemen <ValueLimits> kebijakan.

Misalnya, jika elemen <Text> ditentukan sebagai 15 dalam kebijakan, tetapi payload input memiliki teks dengan lebih dari 15 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang memiliki jumlah atribut terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <Text> dari elemen <ValueLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <Text> disetel ke 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. Periksa nomor baris spesifik (yang diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang nilai atribut yang ditentukan memiliki lebih banyak karakter daripada jumlah yang ditentukan dalam elemen <Text> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, maka itulah penyebab error.

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

    Payload XML yang ditunjukkan di atas pada baris 4 memiliki teks dengan panjang 53 karakter. Karena panjang nilai atribut lebih besar dari 15 (nilai yang ditentukan untuk elemen <Text>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang teks tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa panjang teks yang lebih panjang dapat diizinkan, ubah elemen turunan <Text> dari elemen <ValueLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki nilai atribut hingga 60 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan panjang komentar melebihi jumlah karakter yang ditentukan dalam elemen turunan <Comment> dari elemen <ValueLimits> kebijakan.

Misalnya, jika elemen <Comment> ditentukan sebagai 10 dalam kebijakan, tetapi payload input memiliki komentar dengan lebih dari 10 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang panjang komentar terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <Comment> dari elemen <ValueLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <Comment> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang komentar yang ditentukan memiliki lebih banyak karakter dari jumlah yang ditentukan dalam elemen <Comment> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, maka itulah penyebab error.

    Berikut adalah contoh payload input:

    <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>
    

    Payload XML yang ditampilkan di atas pada baris 2 memiliki komentar dengan panjang nilai 31 karakter. Karena panjang komentar lebih besar dari 10 (nilai yang ditentukan untuk elemen <Comment>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang komentar tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa komentar yang lebih panjang dapat diizinkan, ubah <Comment>elemen turunan dari elemen<ValueLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat mengatribusikan nilai hingga 40 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML yang petunjuk data pemrosesan melebihi jumlah karakter yang ditetapkan dalam elemen turunan <ProcessingInstructionData> elemen <ValueLimits> kebijakan.

Misalnya, jika elemen <ProcessingInstructionData> ditentukan sebagai 10 dalam kebijakan XMLThreatProtection, tetapi payload input memiliki petunjuk pemrosesan dengan lebih dari 10 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang melebihi panjang petunjuk pemrosesan. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi di Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <ProcessingInstructionData> dari elemen <ValueLimits> .

    Dalam contoh kebijakan XMLThreatProtection berikut, <ProcessingInstructionData> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang data instruksi pemrosesan yang ditentukan memiliki lebih banyak karakter dari jumlah yang ditentukan dalam elemen <ProcessingInstructionData> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi data instruksi pemrosesan, maka itulah penyebab error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas di baris 1 memiliki elemen data petunjuk pemrosesan (type="text/xsl" href="mobilephones.xsl"?)dengan panjang 40 karakter. Karena panjang ini lebih besar dari 30 (nilai yang ditentukan untuk elemen <ProcessingInstructionData>), Anda akan mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang data petunjuk pemrosesan tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda memutuskan bahwa elemen data petunjuk pemrosesan yang lebih lama dapat diizinkan, ubah elemen turunan <ProcessingInstructionData> dari elemen <ValueLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki petunjuk pemrosesan data hingga 50 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan target petunjuk proses melebihi jumlah karakter yang ditetapkan dalam elemen turunan <ProcessingInstructionTarget> elemen <NameLimits> kebijakan.

Misalnya, jika elemen <ProcessingInstructionTarget> ditetapkan sebagai 10 dalam kebijakan XMLThreatProtection, tetapi payload input memiliki target petunjuk proses dengan lebih dari 10 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang melebihi jumlah target petunjuk pemrosesan. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan XMLThreatProtection yang gagal (yang diidentifikasi di Langkah #1) dan catat nilai yang ditentukan dalam elemen turunan <ProcessingInstructionTarget> dari elemen <NameLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <ProcessingInstructionTarget> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang target petunjuk pemrosesan yang ditentukan memiliki lebih banyak karakter dari jumlah yang ditentukan dalam elemen <ProcessingInstructionTarget> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi batas ukuran target, maka itulah yang menyebabkan error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas di baris 2 memiliki nama target petunjuk pemrosesan "xml-stylesheet" dengan panjang 14 karakter. Karena nama target petunjuk pemrosesan lebih panjang dari 10 (nilai yang ditentukan untuk elemen <ProcessingInstructionTarget>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang target petunjuk proses tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa target petunjuk proses bisa lebih panjang, ubah elemen turunan <ProcessingInstructionTarget> dari elemen <NameLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki target petunjuk pemrosesan hingga 25 karakter, ubah kebijakan sebagai berikut:

  <?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan URI Namespace melebihi jumlah karakter yang ditetapkan dalam elemen turunan <NamespaceURI> dari elemen <ValueLimits> kebijakan.

Misalnya, jika elemen <NamespaceURI> ditentukan sebagai 10 dalam kebijakan, tetapi payload input memiliki URI namespace dengan lebih dari 10 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris tempat panjang URI namespace terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <NamespaceURI> dari elemen <ValueLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <NamespaceURI> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang URI namespace yang ditentukan memiliki lebih banyak karakter daripada jumlah yang ditentukan dalam elemen <NamespaceURI> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi panjang URI namespace, maka itulah penyebab error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas di baris 2 memiliki URI namespace, www.google.com/profile, dengan panjang 22 karakter. Karena panjang URI namespace lebih besar dari 10 (nilai yang ditentukan untuk elemen <NamespaceURI>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang URI namespace tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa URI namespace yang lebih panjang dapat diizinkan, ubah elemen turunan <NamespaceURI> dari elemen <ValueLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki panjang URI namespace hingga 30 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> berisi dokumen XML dengan awalan Namespace melebihi jumlah karakter yang ditentukan dalam elemen turunan <NamespacePrefix> dari elemen <NameLimits> kebijakan.

Misalnya, jika elemen <NamespacePrefix> ditentukan sebagai 10 dalam kebijakan XMLThreatProtection, tetapi payload input memiliki awalan namespace dengan lebih dari 10 karakter, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris tempat panjang awalan URI namespace terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XML-Threat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <NamespacePrefix> dari elemen <NameLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <NamespacePrefix> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah panjang awalan namespace yang ditentukan memiliki lebih banyak karakter daripada jumlah yang ditentukan dalam elemen <NamespacePrefix> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi batas awalan namespace, berarti itulah yang menyebabkan error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas pada baris 2 memiliki awalan namespace userprofile dengan panjang 11 karakter. Karena panjang awalan URI namespace lebih besar dari 10 (nilai yang ditentukan untuk elemen <NamespacePrefix>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi panjang awalan URI namespace tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa awalan URI namespace yang lebih panjang dapat diizinkan, ubah elemen turunan <NamespacePrefix> dari elemen <NameLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki panjang awalan URI namespace hingga 15 karakter, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

{
    "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"
        }
    }
}

Contoh isi respons Error

{
    "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"
        }
    }
}

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLThreatProtection berisi dokumen XML dengan jumlah namespace yang digunakan dalam satu elemen melebihi jumlah yang ditetapkan dalam elemen turunan <NamespaceCountPerElement> elemen <StructureLimits> kebijakan.

Misalnya, jika elemen <NamespaceCountPerElement> ditentukan sebagai 3 dalam kebijakan, tetapi payload input memiliki elemen dengan lebih dari 3 namespace, error ini akan ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris yang memiliki jumlah namespace terlampaui. Misalnya, dalam pesan error berikut, nama kebijakan adalah XMLThreat-Protection-1 dan nomor baris dalam payload adalah 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. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <NamespaceCountPerElement> dari elemen <StructureLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <NamespaceCountPerElement> disetel ke 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. Periksa nomor baris spesifik (diidentifikasi pada Langkah 1) payload input dan periksa apakah jumlah namespace yang ditentukan di sana untuk satu elemen lebih tinggi dari jumlah yang ditentukan dalam elemen <NamespaceCountPerElement> (diidentifikasi pada Langkah 2). Jika jumlah namespace melebihi jumlah namespace per batas elemen, berarti itulah yang menyebabkan error.

    Berikut adalah contoh payload input:

    <?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>
    

    Payload XML yang ditampilkan di atas pada baris 2 memiliki lebih dari 3 namespace. Karena jumlah namespace lebih besar dari 3 (nilai yang ditentukan untuk elemen <NamespaceCountPerElement>), Anda mendapatkan error berikut:

    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)
    

Resolusi

Jika kebijakan XMLThreatProtection ditujukan untuk melindungi dari payload yang melebihi jumlah namespace tertentu dalam satu elemen, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda memutuskan bahwa jumlah namespace yang lebih besar dapat diizinkan, ubah elemen turunan <NamespaceCountPerElement> dari elemen <StructureLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki hingga 5 namespace dalam satu elemen, ubah kebijakan sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.ExecutionFailed

Isi respons error

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

Contoh isi respons Error

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

Penyebab

Error ini terjadi jika payload pesan input yang ditentukan oleh elemen <Source> kebijakan XMLProtectionPolicy bukan Dokumen XML yang valid.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan tempat error terjadi. Pada contoh berikut, nama kebijakannya adalah XML-Threat-Protection-1.

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Execution failed.
    reason: Syntax error while parsing XML prologue
    
  2. Periksa payload input dan periksa apakah dokumen XML yang diteruskan dalam payload memang merupakan dokumen XML yang diformat dengan baik atau bukan.

    Berikut adalah contoh payload input:

    <?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>
    

    Dalam payload XML yang ditampilkan di atas, baris 9 tidak menutup elemen root dengan benar karena / tidak ada. Karena XML ini tidak diformat dengan baik, Anda mendapatkan error:

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

Resolusi

Pastikan payload XML input yang valid diteruskan ke semua proxy API yang menyertakan kebijakan XMLThreatProtection.

Untuk memperbaiki contoh error yang dijelaskan di atas, ubah payload XML input sebagai berikut:

<?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

Kode Error

steps.xmlthreatprotection.SourceUnavailable

Isi respons error

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

Contoh isi respons Error

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

Penyebab

Error ini terjadi jika variabel message yang ditentukan dalam elemen <Source> pada kebijakan XMLThreatProtection adalah:

  • Di luar cakupan (tidak tersedia di alur spesifik tempat kebijakan sedang dijalankan)
  • Bukan salah satu dari nilai request, response, atau message yang valid

Misalnya, error ini terjadi jika elemen <Source> dalam kebijakan disetel ke variabel yang tidak ada dalam alur tempat kebijakan dijalankan.

Diagnosis

  1. Identifikasi nama kebijakan XMLThreatProtection, dan nama variabel Sumber dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan XMLThreatProtection adalah XML-Threat-Protection-1 dan variabel Sumber adalah requests:

    XMLThreatProtection stepDefinition XML-Threat-Protection-1: Source requests
    is not available
    
  2. Periksa kebijakan XMLThreatProtection yang gagal dan periksa nilai yang ditentukan untuk elemen <Source> yang diidentifikasi di Langkah 1.

    Dalam contoh kebijakan XMLThreatProtection berikut, elemen <Source> disetel ke 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>
    

    Nilai yang valid untuk elemen <Source> adalah request, response, atau message.. Karena requests bukan nilai yang valid dan tidak ada dalam alur tempat kebijakan dijalankan, Anda akan mendapatkan error:

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

Resolusi

Pastikan variabel yang ditetapkan di elemen <Source> pada kebijakan XMLThreatProtection yang gagal disetel ke request, response, atau message dan ada di alur tempat kebijakan dijalankan.

Untuk memperbaiki contoh kebijakan yang ditampilkan di atas, Anda dapat mengubah elemen <Source> untuk menggunakan variabel request , karena variabel tersebut ada dalam alur permintaan:

<?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

Kode Error

steps.xmlthreatprotection.NonMessageVariable

Isi respons error

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

Contoh isi respons Error

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

Penyebab

Error ini terjadi jika elemen <Source> dalam kebijakan XMLThreatProtection disetel ke variabel yang bukan jenis Message.

Variabel jenis pesan mewakili keseluruhan permintaan dan respons HTTP. Variabel alur Apigee Edge bawaan request, response, dan message berjenis Pesan. Untuk mempelajari variabel pesan lebih lanjut, baca artikel Referensi variabel.

Diagnosis

  1. Identifikasi nama variabel yang ditetapkan menjadi Jenis pesan variabel dari pesan error. Misalnya, dalam pesan error berikut, nama variabelnya adalah message.content

    Variable message.content does not resolve to a Message
    
  2. Periksa semua kebijakan XMLThreadProtection di proxy API tempat kegagalan terjadi dan identifikasi kebijakan XMLThreadProtection tertentu tempat elemen <Source> ditentukan dengan nama variabel yang diidentifikasi pada Langkah 1 di atas.

    Dalam contoh kebijakan XMLThreatProtection berikut, <Source> disetel ke 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>
    

    Karena variabel message.content bukan merupakan jenis Pesan, Anda mendapatkan error:

    Variable message.content does not resolve to a Message
    

Resolusi

Pastikan elemen <Source> dalam kebijakan XMLThreatProtection yang gagal disetel ke variabel alur jenis Message yang ada di alur tempat kebijakan dijalankan.

Untuk memperbaiki kebijakan, Anda dapat mengubah elemen <Source> untuk menentukan variabel yang berjenis Pesan. Misalnya, dalam XMLThreatProtection yang gagal, Anda dapat menentukan elemen <Source> sebagai 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>