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 diperbolehkan dalam payload XML terlampaui.
AttributeCountExceeded Jumlah atribut maksimum dalam satu elemen terlampaui.
AttributeNameExceeded Panjang maksimum yang diizinkan untuk nama atribut terlampaui.
AttributeValueExceeded Panjang maksimum yang diizinkan untuk nilai atribut terlampaui.
TextExceeded Panjang maksimum yang diizinkan untuk teks 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 namespace 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 dengan 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> ditentukan 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 elemennya 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 pada Langkah 1) dan catat nilai yang ditentukan dalam elemen <Element>.

    Misalnya, dalam kebijakan XMLThreatProtection berikut, <Element> ditetapkan 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 tertentu (diidentifikasi pada Langkah 1) dari payload input dan periksa apakah panjang elemen pada baris tersebut lebih besar dari nilai yang ditentukan untuk elemen <Element> (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 ditampilkan 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, maka pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan apa pun.

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 ditentukan 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 ditampilkan.

Diagnosis

  1. Periksa pesan error untuk mengidentifikasi nama kebijakan XMLThreatProtection dan nomor baris tempat jumlah entri terlampaui. Misalnya, dalam pesan error berikut, nama kebijakannya 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 pada Langkah 1) dan catat nilai yang ditentukan dalam elemen <ChildCount>.

    Pada contoh kebijakan berikut, <ChildCount> ditetapkan ke 3(perhatikan bahwa komentar, elemen penyertaan, dan 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 (yang diidentifikasi pada Langkah 1) dari 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 pada Langkah 2). Jika jumlah elemen turunan melebihi jumlah turunan, hal itu adalah 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>), Anda akan mendapatkan error berikut:

    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 dimaksudkan untuk melindungi dari payload dengan jumlah elemen turunan yang melebihi nilai minimum tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan apa pun.

Namun, jika Anda menentukan bahwa elemen turunan dalam jumlah yang lebih besar (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 yang melebihi jumlah yang ditentukan dalam elemen <NodeDepth> 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 kebijakannya 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 pada Langkah 1) dan catat nilai yang ditentukan dalam elemen <NodeDepth>.

    Pada contoh kebijakan XMLThreatProtection berikut, <NodeDepth> ditetapkan 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 (yang diidentifikasi pada Langkah 1) dari payload input dan periksa apakah kedalaman node yang ditentukan di sana memiliki jumlah yang lebih tinggi dari jumlah yang ditentukan dalam elemen <NodeDepth> (yang diidentifikasi pada Langkah 2). Jika tingkat elemen turunan XML melebihi hitungan, 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 ambang batas kedalaman node tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan apa pun.

Namun, jika Anda menentukan bahwa kedalaman node yang lebih besar dapat diizinkan, ubah <NodeDepth> ke nilai yang sesuai berdasarkan kebutuhan 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 satu elemen melebihi jumlah yang ditentukan dalam elemen <AttributeCountPerElement> kebijakan.

Misalnya, jika elemen <AttributeCountPerElement> ditentukan sebagai 2 dalam kebijakan 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 tempat 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 pada Langkah 1), lalu catat nilai yang ditentukan dalam elemen <AttributeCountPerElement>.

    Pada contoh kebijakan berikut, <AttributeCountPerElement> ditetapkan 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 tertentu (diidentifikasi pada Langkah 1) dari 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, hal itu adalah 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 memberikan perlindungan terhadap payload yang melebihi jumlah atribut tertentu, maka pesan error akan muncul. Dalam kasus ini, Anda tidak perlu melakukan tindakan tambahan.

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

Misalnya, jika Anda merasa dapat mengizinkan sejumlah atribut per elemen hingga 5 atribut, 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 ditentukan 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 melebihi panjang nama atribut. 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 (diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen <Attribute>

    Pada contoh kebijakan XMLThreatProtection berikut, <Attribute> ditetapkan 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 (yang diidentifikasi pada Langkah 1) dari payload input dan periksa apakah panjang atribut yang ditentukan di sana memiliki karakter yang lebih banyak dari jumlah yang ditetapkan dalam elemen <Attribute> (yang diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, hal itu adalah 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, maka pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda menentukan bahwa panjang nama atribut yang lebih panjang dapat diizinkan, ubah <Attribute> ke nilai yang sesuai berdasarkan kebutuhan 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 yang melebihi jumlah karakter yang ditentukan dalam elemen turunan <Attribute> dari 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 tempat jumlah atribut terlampaui. Misalnya, dalam pesan error berikut, nama kebijakannya 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 (diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan di elemen turunan <Attribute> dari elemen <ValueLimits>.

    Pada contoh kebijakan XMLThreatProtection berikut, <Attribute> ditetapkan 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) dari payload input dan periksa apakah panjang nilai atribut yang ditentukan di sana memiliki karakter yang lebih banyak dari jumlah yang ditentukan dalam elemen <Attribute> (yang diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, hal itu adalah 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 ditunjukkan di atas pada baris 3 memiliki atribut (hidangan) 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 dimaksudkan 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 kebutuhan 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> ditetapkan 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 tempat jumlah atribut terlampaui. Misalnya, dalam pesan error berikut, nama kebijakannya 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 (diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan di elemen turunan <Text> dari elemen <ValueLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <Text> ditetapkan 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) dari payload input dan periksa apakah panjang nilai atribut yang ditentukan di sana memiliki karakter yang lebih banyak dari jumlah yang ditentukan dalam elemen <Text> (yang diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi nilai atribut, hal itu adalah 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 akan 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 dimaksudkan 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> ditetapkan 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 tempat 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 (diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan di elemen turunan <Comment> dari elemen <ValueLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <Comment> ditetapkan 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 tertentu (diidentifikasi pada Langkah 1) dari payload input dan periksa apakah panjang komentar yang ditentukan di sana memiliki lebih banyak karakter daripada 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 akan 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 dimaksudkan untuk melindungi dari payload yang melebihi panjang komentar tertentu, maka pesan error akan muncul. Dalam kasus ini, Anda tidak perlu melakukan tindakan tambahan.

Namun, jika Anda memutuskan bahwa komentar yang lebih panjang dapat diizinkan, ubah elemen turunan <Comment> 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 dengan petunjuk pemrosesan data yang melebihi jumlah karakter yang ditentukan dalam elemen turunan <ProcessingInstructionData> dari 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 tempat panjang petunjuk pemrosesan 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: Processing
    Instruction data length exceeded 30 at line 2(possibly around char 109)
    
  2. Periksa kebijakan yang gagal (yang diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan dalam elemen turunan <ProcessingInstructionData> dari elemen <ValueLimits> .

    Pada contoh kebijakan XMLThreatProtection berikut, <ProcessingInstructionData> ditetapkan 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 (yang diidentifikasi pada Langkah 1) dari payload input dan periksa apakah panjang data petunjuk pemrosesan yang ditentukan di sana memiliki lebih banyak karakter dari jumlah yang ditentukan dalam elemen <ProcessingInstructionData> (yang diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi data petunjuk 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 ditunjukkan di atas pada 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 dimaksudkan 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 menentukan bahwa elemen data petunjuk pemrosesan yang lebih panjang dapat diizinkan, ubah elemen turunan <ProcessingInstructionData> dari elemen <ValueLimits> menjadi nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki panjang 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 yang melebihi jumlah karakter yang ditentukan dalam elemen turunan <ProcessingInstructionTarget> dari elemen <NameLimits> kebijakan.

Misalnya, jika elemen <ProcessingInstructionTarget> ditentukan 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 tempat jumlah target petunjuk pemrosesan terlampaui. 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 pada Langkah #1) dan catat nilai yang ditentukan dalam elemen turunan <ProcessingInstructionTarget> dari <NameLimits> .

    Dalam contoh kebijakan XMLThreatProtection berikut, <ProcessingInstructionTarget> ditetapkan 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 tertentu (diidentifikasi pada Langkah 1) dari payload input dan periksa apakah panjang target petunjuk pemrosesan yang ditentukan di sana memiliki lebih banyak karakter daripada jumlah yang ditentukan dalam elemen <ProcessingInstructionTarget> (diidentifikasi pada Langkah 2). Jika jumlah karakter melebihi batas ukuran target, 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 pada 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 akan 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 dimaksudkan 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 dapat lebih panjang, ubah elemen turunan <ProcessingInstructionTarget> dari elemen <NameLimits> ke nilai yang sesuai berdasarkan persyaratan Anda.

Misalnya, jika Anda merasa dapat memiliki target petunjuk proses 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 ditentukan 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 (diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan di elemen turunan <NamespaceURI> dari elemen <ValueLimits>.

    Pada contoh kebijakan XMLThreatProtection berikut, <NamespaceURI> ditetapkan 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 tertentu (yang diidentifikasi pada Langkah 1) dari payload input dan periksa apakah panjang URI namespace yang ditentukan di sana 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 ditunjukkan di atas pada 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 akan 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 dimaksudkan untuk melindungi dari payload yang melebihi panjang URI namespace tertentu, pesan error akan muncul. Dalam hal ini, Anda tidak perlu melakukan tindakan tambahan apa pun.

Namun, jika Anda menentukan bahwa URI namespace yang lebih panjang dapat diizinkan, ubah elemen turunan <NamespaceURI> dari elemen <ValueLimits> ke nilai yang sesuai berdasarkan kebutuhan 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 yang 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 <NameLimits> .

    Dalam contoh kebijakan XMLThreatProtection berikut, <NamespacePrefix> ditetapkan 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 (yang diidentifikasi pada Langkah 1) dari 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 penyebab 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 akan 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 kasus 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 ditentukan dalam elemen turunan <NamespaceCountPerElement> dari 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 tempat jumlah namespace terlampaui. Misalnya, dalam pesan error berikut, nama kebijakannya 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 (diidentifikasi pada Langkah 1) dan catat nilai yang ditentukan di elemen turunan <NamespaceCountPerElement> dari elemen <StructureLimits>.

    Dalam contoh kebijakan XMLThreatProtection berikut, <NamespaceCountPerElement> ditetapkan 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 (yang diidentifikasi pada Langkah 1) dari payload input dan periksa apakah jumlah namespace yang ditentukan di sana untuk satu elemen lebih tinggi dari jumlah yang ditentukan dalam elemen <NamespaceCountPerElement> (yang diidentifikasi pada Langkah 2). Jika jumlah namespace melebihi jumlah namespace per batas elemen, maka 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 akan 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 dimaksudkan 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 menentukan bahwa namespace dalam jumlah 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. Dalam contoh berikut, nama kebijakan 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 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 ini bukan XML yang terbentuk dengan baik, Anda akan 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 proxy API apa pun 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> kebijakan XMLThreatProtection adalah:

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

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 Source dari pesan error. Misalnya, dalam pesan error berikut, nama kebijakan XMLThreatProtection adalah XML-Threat-Protection-1 dan variabel Source 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 pada Langkah 1.

    Pada contoh kebijakan XMLThreatProtection berikut, elemen <Source> ditetapkan 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> kebijakan XMLThreatProtection yang gagal ditetapkan ke request, response, atau message dan ada dalam alur tempat kebijakan dieksekusi.

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 ditetapkan ke variabel yang bukan dari jenis Message.

Variabel jenis pesan mewakili seluruh permintaan dan respons HTTP. Variabel alur Apigee Edge bawaan request, response, dan message adalah jenis Pesan. Untuk mempelajari variabel pesan lebih lanjut, lihat Referensi variabel.

Diagnosis

  1. Identifikasi nama variabel yang melakukan penyelesaian ke jenis Pesan variabel dari pesan error. Misalnya, dalam pesan error berikut, nama variabel 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.

    Pada contoh kebijakan XMLThreatProtection berikut, <Source> ditetapkan 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 jenis Pesan, Anda mendapatkan error:

    Variable message.content does not resolve to a Message
    

Resolusi

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

Untuk memperbaiki kebijakan, Anda dapat mengubah elemen <Source> untuk menentukan variabel yang berjenis Message. 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>