คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
อะไร
แก้ไขช่องโหว่ใน XML และลดการโจมตีใน API ของคุณ (ไม่บังคับ) ให้ตรวจจับการโจมตีของเพย์โหลด XML ตามขีดจำกัดที่กำหนดค่าไว้ คัดกรองภัยคุกคาม XML โดยใช้วิธีการต่อไปนี้
- ตรวจสอบข้อความกับสคีมา XML (
.xsd
) - ประเมินเนื้อหาข้อความสำหรับคีย์เวิร์ดหรือรูปแบบเฉพาะที่จะยกเว้น
- ตรวจหาข้อความที่เสียหายหรือมีรูปแบบไม่ถูกต้องก่อนที่จะแยกวิเคราะห์ข้อความ
การอ้างอิงองค์ประกอบ
การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย XMLThreatProtection
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1"> <DisplayName>XML Threat Protection 1</DisplayName> <NameLimits> <Element>10</Element> <Attribute>10</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>
แอตทริบิวต์ <XMLThreatProtection>
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
ตารางต่อไปนี้อธิบายแอตทริบิวต์ที่ใช้ร่วมกันในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มีข้อมูล | จำเป็น |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
false | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
false | เลิกใช้ |
องค์ประกอบ <DisplayName>
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มีข้อมูล หากคุณไม่ใส่องค์ประกอบนี้ ระบบจะใช้ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
Type | สตริง |
องค์ประกอบ <NameLimits>
ระบุจำนวนอักขระสูงสุดที่จะตรวจสอบและบังคับใช้โดยนโยบาย
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
ค่าเริ่มต้น: | ไม่มีข้อมูล |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: | ไม่มีข้อมูล |
องค์ประกอบ <NameLimits>/<Element>
ระบุขีดจำกัดของจำนวนอักขระสูงสุดที่อนุญาตในชื่อองค์ประกอบในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ <Element>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าชื่อองค์ประกอบ (book
, title
, author
และ year)
ยาวไม่เกิน 10
อักขระ
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: | จำนวนเต็ม |
องค์ประกอบ <NameLimits>/<Attribute>
ระบุขีดจำกัดของจำนวนอักขระสูงสุดที่อนุญาตในชื่อแอตทริบิวต์ในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ <Attribute>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าชื่อแอตทริบิวต์ category
มีความยาวไม่เกิน 10
อักขระ
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: | จำนวนเต็ม |
องค์ประกอบ <NameLimits>/<NamespacePrefix>
ระบุขีดจำกัดจำนวนอักขระสูงสุดที่อนุญาตในคำนำหน้าเนมสเปซในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<ns1:myelem xmlns:ns1="http://ns1.com"/>
เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ <NamespacePrefix>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าคำนำหน้าเนมสเปซ ns1
มีความยาวไม่เกิน 10
อักขระ
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: | จำนวนเต็ม |
องค์ประกอบ <NameLimits>/<ProcessingInstructionTarget>
ระบุขีดจำกัดจำนวนอักขระสูงสุดที่อนุญาตในเป้าหมายของคำสั่งการประมวลผลในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ <ProcessingInstructionTarget>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าเป้าหมายวิธีการประมวลผล xml-stylesheet
มีความยาวไม่เกิน 10
อักขระ
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: | จำนวนเต็ม |
องค์ประกอบ <Source>
ข้อความที่ต้องคัดกรองการโจมตีด้วยเพย์โหลด XML โดยโดยทั่วไปจะตั้งค่าเป็น request
เนื่องจากคุณจะต้องตรวจสอบคำขอขาเข้าจากแอปไคลเอ็นต์
เมื่อตั้งค่าเป็น message
องค์ประกอบนี้จะประเมินข้อความคำขอโดยอัตโนมัติเมื่อแนบกับโฟลว์คำขอและข้อความตอบกลับเมื่อแนบไปกับขั้นตอนการตอบกลับ
<Source>request</Source>
ค่าเริ่มต้น: | ส่งคำขอ |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
สตริง เลือกจาก |
องค์ประกอบ <StructuralLimits>
ระบุขีดจำกัดเชิงโครงสร้างที่จะตรวจสอบและบังคับใช้โดยนโยบาย
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
ค่าเริ่มต้น: | ไม่มีข้อมูล |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: | ไม่มีข้อมูล |
องค์ประกอบ <StructuralLimits>/<NodeDepth>
ระบุความลึกสูงสุดของโหนดที่อนุญาตใน XML
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <StructuralLimits>/<AttributeCountPerElement>
ระบุจำนวนแอตทริบิวต์สูงสุดที่อนุญาตสำหรับองค์ประกอบใดๆ
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ
<AttributeCountPerElement>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าองค์ประกอบ book
, title
, author
และ year
มีแอตทริบิวต์แต่ละรายการไม่เกิน 2
รายการ
โปรดทราบว่าระบบจะไม่นับแอตทริบิวต์ที่ใช้สำหรับกำหนดเนมสเปซ
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <StructuralLimits>/<NameSpaceCountPerElement>
ระบุจำนวนสูงสุดของการกำหนดเนมสเปซที่อนุญาตสำหรับทุกองค์ประกอบ
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<e1 attr1="val1" attr2="val2"> <e2 xmlns="http://apigee.com" xmlns:yahoo="http://yahoo.com" one="1" yahoo:two="2"/> </e1>
เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ <NamespaceCountPerElement>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าองค์ประกอบ e1
และ e2
มีคำจำกัดความเนมสเปซมากกว่า 2
รายการ ในกรณีนี้ <e1> มีคำจำกัดความเนมสเปซ 0 รายการ และ <e2> มีคำจำกัดความเนมสเปซ 2 รายการ ได้แก่ xmlns="http://apigee.com"
และ xmlns:yahoo="http://yahoo.com"
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <StructuralLimits>/<ChildCount>
ระบุจำนวนองค์ประกอบย่อยสูงสุดที่อนุญาตสำหรับองค์ประกอบใดๆ
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
Attributes
แอตทริบิวต์ | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|
includeComment | จริง | ไม่บังคับ |
includeElement | จริง | ไม่บังคับ |
includeProcessingInstructions | จริง | ไม่บังคับ |
includeText | จริง | ไม่บังคับ |
องค์ประกอบ <ValueLimits>
ระบุจำนวนอักขระสูงสุดสำหรับค่าที่นโยบายจะตรวจสอบและบังคับใช้
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
ค่าเริ่มต้น: | ไม่มีข้อมูล |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
ไม่มีข้อมูล |
องค์ประกอบ <ValueLimits>/<Text>
ระบุจำนวนอักขระสูงสุดสำหรับโหนดข้อความที่อยู่ในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>เมื่อวิเคราะห์ XML ด้านบน ค่าขององค์ประกอบ
<Text>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าค่าข้อความขององค์ประกอบ Learning XML
, Erik T.
Ray,
และ 2003
แต่ละค่าไม่เกิน 15
อักขระ
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <ValueLimits>/<Attribute>
ระบุจำนวนอักขระสูงสุดสำหรับค่าแอตทริบิวต์ที่ปรากฏในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ
<Attribute>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าค่าแอตทริบิวต์ WEB
ไม่เกิน 10
อักขระ
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <ValueLimits>/<NamespaceURI>
ระบุจำนวนอักขระสูงสุดสำหรับ URI ของเนมสเปซที่ปรากฏในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<ns1:myelem xmlns:ns1="http://ns1.com"/>เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ
<NamespaceURI>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าค่า URI ของเนมสเปซ http://ns1.com
ต้องมีความยาวไม่เกิน 10
อักขระ
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <ValueLimits>/<ความคิดเห็น>
ระบุจำนวนอักขระสูงสุดสำหรับความคิดเห็นที่อยู่ในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <!-- This is a comment --> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ
<Comment>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าข้อความความคิดเห็น This is a comment
ต้องมีความยาวไม่เกิน 10
อักขระ
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
องค์ประกอบ <ValueLimits>/<ProcessingInstructionData>
ระบุจำนวนอักขระสูงสุดสำหรับข้อความวิธีการประมวลผลที่อยู่ในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<?xml-stylesheet type="text/xsl" href="style.xsl"?>เมื่อวิเคราะห์ XML ด้านบน ค่าองค์ประกอบ
<ProcessingInstructionData>
ในตัวอย่างนโยบายด้านล่างจะตรวจสอบว่าข้อความวิธีการประมวลผล type="text/xsl" href="style.xsl"
มีความยาวไม่เกิน 10
อักขระ
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
ค่าเริ่มต้น: | หากไม่ระบุขีดจำกัด ระบบจะใช้ค่าเริ่มต้น -1 ซึ่งเท่ากับว่าไม่จำกัด |
สถานที่ตั้ง: | ไม่บังคับ |
ประเภท: |
จำนวนเต็ม |
การอ้างอิงข้อผิดพลาด
ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | สาเหตุ | แก้ไข |
---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | นโยบาย XMLThreatProtection อาจแสดงข้อผิดพลาด ExecutionFailed หลายประเภท ข้อผิดพลาดเหล่านี้ส่วนใหญ่จะเกิดขึ้นเมื่อเกินเกณฑ์ที่ตั้งไว้ในนโยบาย ประเภทข้อผิดพลาดเหล่านี้ ได้แก่ ความยาวของชื่อองค์ประกอบ จำนวนย่อย ความลึกของโหนด จำนวนแอตทริบิวต์ ความยาวของชื่อแอตทริบิวต์ และอื่นๆ อีกมากมาย คุณสามารถดูรายการทั้งหมดได้ในหัวข้อการแก้ปัญหาเกี่ยวกับรันไทม์ของนโยบาย XMLThreatProtection | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
ข้อผิดพลาดนี้จะเกิดขึ้นหากเพย์โหลดของข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source> ของนโยบาย XMLThreatProtection ไม่ใช่เอกสาร XML ที่ถูกต้อง
|
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากตัวแปร message ที่ระบุในองค์ประกอบ <Source> มีลักษณะดังนี้
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <Source> เป็นตัวแปรที่ไม่ใช่ประเภท ข้อความ
|
build |
Notes:
- ชื่อข้อผิดพลาด ExecutionFailed เป็นชื่อข้อผิดพลาดเริ่มต้นและจะแสดงผลไม่ว่าข้อผิดพลาดที่ตรวจพบจะเป็นประเภทใด แต่ค่าเริ่มต้นนี้เปลี่ยนได้โดยการตั้งค่าพร็อพเพอร์ตี้ระดับองค์กร เมื่อตั้งค่าพร็อพเพอร์ตี้นี้ ชื่อข้อผิดพลาดจะแสดงข้อผิดพลาดจริง เช่น "TextExceeded" หรือ "AttrValueExceeded" ดูรายละเอียดได้ที่หมายเหตุการใช้งาน
- สถานะ HTTP 500 เป็นค่าเริ่มต้น แต่สถานะ HTTP สามารถเปลี่ยนเป็น 400 สำหรับข้อผิดพลาดของกระบวนการส่งคำขอโดยการตั้งค่าพร็อพเพอร์ตี้ระดับองค์กร ดูรายละเอียดได้ที่หมายเหตุการใช้งาน
ข้อผิดพลาดในการทำให้ใช้งานได้
ไม่มี
ตัวแปรของข้อผิดพลาด
ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อเกิดข้อผิดพลาดรันไทม์ ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบาย
ตัวแปร | สถานที่ | ตัวอย่าง |
---|---|---|
fault.name="fault_name" |
fault_name คือชื่อของข้อผิดพลาดตามที่แสดงในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของโค้ดข้อผิดพลาด | fault.name Matches "SourceUnavailable" |
xmlattack.policy_name.failed |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นข้อผิดพลาด | xmlattack.XPT-SecureRequest.failed = true |
ตัวอย่างการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
ตัวอย่างกฎข้อผิดพลาด
<FaultRule name="XML Threat Protection Policy Faults"> <Step> <Name>AM-CustomErrorResponse</Name> <Condition>(fault.name Matches "ExecutionFailed") </Condition> </Step> <Condition>(xmlattack.XPT-SecureRequest.failed = true) </Condition> </FaultRule>
สคีมา
หมายเหตุการใช้งาน
เซิร์ฟเวอร์ใดๆ ที่รับข้อมูลออนไลน์จะถูกโจมตี ไม่ว่าจะเป็นอันตรายหรือไม่ได้ตั้งใจก็ตาม การโจมตีบางครั้งใช้ประโยชน์จากความยืดหยุ่นของ XML โดยการสร้างเอกสารที่ไม่ถูกต้องซึ่งอาจทำให้ระบบแบ็กเอนด์ถูกบุกรุก เอกสาร XML ที่เสียหายหรือซับซ้อนมากอาจทำให้เซิร์ฟเวอร์จัดสรรหน่วยความจำเกินกว่าที่มีอยู่ ทำให้ทรัพยากรของ CPU และหน่วยความจำผูกอยู่ โปรแกรมแยกวิเคราะห์ที่ขัดข้อง และโดยทั่วไปการปิดใช้การประมวลผลข้อความและการสร้างการโจมตีแบบปฏิเสธการให้บริการในระดับแอปพลิเคชัน
การกําหนดค่าข้อผิดพลาดของการป้องกันภัยคุกคาม
ข้อมูลสำคัญหากคุณสร้าง FaultRule สำหรับนโยบายนี้: โดยค่าเริ่มต้น Edge จะแสดงรหัสสถานะข้อผิดพลาด HTTP 500 Internal Server และรหัสข้อผิดพลาด ExecutionFailed
หากข้อความไม่ผ่านนโยบาย Threat Protection ของ JSON หรือ XML คุณเปลี่ยนลักษณะการทำงานของข้อผิดพลาดดังกล่าวได้ด้วยพร็อพเพอร์ตี้ระดับองค์กรใหม่ เมื่อตั้งค่าพร็อพเพอร์ตี้ขององค์กร features.isPolicyHttpStatusEnabled
เป็น "จริง" ลักษณะการทำงานต่อไปนี้จะเกิดขึ้น
- คำขอ: เมื่อมีการแนบนโยบายการป้องกันภัยคุกคามไว้ในขั้นตอนคำขอ ข้อความที่ไม่ถูกต้องจะแสดงรหัสสถานะ 400 Bad Request พร้อมกับรหัสข้อผิดพลาดของนโยบายที่เกี่ยวข้อง (แทนที่จะเป็น ExecutionFailed)
- การตอบสนอง: เมื่อมีการใช้นโยบายการป้องกันภัยคุกคามที่แนบมากับขั้นตอนการตอบสนอง ข้อความที่ไม่ถูกต้องจะยังคงแสดงผลเป็นรหัสสถานะข้อผิดพลาดภายในเซิร์ฟเวอร์ 500 และมีการระบุรหัสข้อผิดพลาดของนโยบายที่เกี่ยวข้องรหัสใดรหัสหนึ่ง (แทนที่จะระบุเพียง ExecutionFailed)
ลูกค้า Cloud ต้องติดต่อทีมสนับสนุนของ Apigee Edge เพื่อตั้งค่าพร็อพเพอร์ตี้องค์กร