คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
อะไร
แก้ไขช่องโหว่ 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 |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
| ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
|---|---|
| การมีบุคคลอยู่ | ไม่บังคับ |
| ประเภท | สตริง |
องค์ประกอบ <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>
<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> element
ระบุจำนวนสูงสุดขององค์ประกอบย่อยที่อนุญาตสำหรับองค์ประกอบใดๆ
<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>
<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>
<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"/>
<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>/<Comment>
ระบุขีดจำกัดอักขระสำหรับความคิดเห็นที่มีอยู่ในเอกสาร XML
ตัวอย่างเช่น ลองพิจารณา XML ต่อไปนี้
<book category="WEB"> <!-- This is a comment --> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<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"?>
<ProcessingInstructionData>
value ในข้อมูลโค้ดนโยบายด้านล่างจะตรวจสอบว่าข้อความคำสั่งการประมวลผล
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 |
ข้อผิดพลาดนี้จะเกิดขึ้นหากข้อความ
ตัวแปรที่ระบุในองค์ประกอบ <Source> มีดังนี้
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากองค์ประกอบ <Source> ได้รับการตั้งค่าเป็นตัวแปรที่
ไม่ใช่ประเภท
message
|
build |
หมายเหตุ
- ชื่อข้อผิดพลาด 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 และหน่วยความจำ ไม่ว่าง พาร์สเซอร์ขัดข้อง และโดยทั่วไปจะปิดใช้การประมวลผลข้อความและสร้างการโจมตีแบบปฏิเสธการให้บริการที่ระดับแอปพลิเคชัน
การกำหนดค่าข้อผิดพลาดในการป้องกันภัยคุกคาม
ข้อมูลสำคัญหากคุณสร้าง FaultRules สำหรับนโยบายนี้: โดย
ค่าเริ่มต้น Edge จะแสดงรหัสสถานะ HTTP 500 Internal Server Error และรหัสข้อผิดพลาด ExecutionFailed
หากข้อความไม่ผ่านนโยบายการป้องกันภัยคุกคาม JSON หรือ XML คุณเปลี่ยนลักษณะการทำงานของข้อผิดพลาดนั้นได้ด้วยพร็อพเพอร์ตี้ระดับองค์กรใหม่ เมื่อตั้งค่าพร็อพเพอร์ตี้ org
features.isPolicyHttpStatusEnabled เป็น true จะเกิดลักษณะการทำงานต่อไปนี้
- คำขอ: เมื่อแนบนโยบายการป้องกันภัยคุกคามกับโฟลว์คำขอใดก็ตาม ข้อความที่ไม่ถูกต้องจะ แสดงรหัสสถานะ 400 Bad Request พร้อมรหัสข้อผิดพลาดของนโยบายที่เกี่ยวข้อง (แทนที่จะเป็น ExecutionFailed เพียงอย่างเดียว)
- การตอบกลับ: เมื่อแนบนโยบายการป้องกันภัยคุกคามกับโฟลว์การตอบกลับใดก็ตาม ข้อความที่ไม่ถูกต้อง จะยังคงแสดงรหัสสถานะ 500 Internal Server Error และระบบจะแสดงรหัสข้อผิดพลาดของนโยบายที่เกี่ยวข้อง รายการใดรายการหนึ่ง (แทนที่จะเป็น ExecutionFailed เพียงอย่างเดียว)
ลูกค้า Cloud ต้องติดต่อทีมสนับสนุนของ Apigee Edge เพื่อตั้งค่าพร็อพเพอร์ตี้ขององค์กร