คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
อะไร
ดึงข้อมูลจากข้อความ (เช่น เส้นทาง URI, พารามิเตอร์การค้นหา, ส่วนหัว, พารามิเตอร์แบบฟอร์ม, ตัวแปร, เพย์โหลด XML หรือเพย์โหลด JSON) และประเมินเนื้อหานั้นเทียบกับปกติที่กำหนดไว้ล่วงหน้า นิพจน์ ถ้านิพจน์ทั่วไปที่ระบุมีค่าเป็น "จริง" ข้อความจะถือว่าเป็น และถูกปฏิเสธ
วิดีโอ
ดูข้อมูลเพิ่มเติมเกี่ยวกับนโยบายการป้องกันนิพจน์ทั่วไปในวิดีโอต่อไปนี้
วิดีโอ | คำอธิบาย |
---|---|
การปกป้อง ต่อการโจมตีการแทรก SQL (New Edge) | ป้องกันการโจมตีการแทรก SQL โดยใช้นโยบายการป้องกันนิพจน์ทั่วไปใน UI ประสบการณ์ใหม่ของ Edge |
การปกป้อง ต่อการโจมตีการแทรก SQL (Classic Edge) | ป้องกันการโจมตีการแทรก SQL โดยใช้นโยบายการป้องกันนิพจน์ทั่วไปใน แบบคลาสสิกของ Edge UI |
ตัวอย่าง
GitHub
การตั้งค่า regex-Protection ตัวอย่างใน GitHub จะแสดงวิธีดักจับการโจมตีด้วยการแทรก SQL ที่อาจเกิดขึ้นผ่าน พารามิเตอร์การค้นหา นอกจากนี้ ในตัวอย่างนี้ยังแสดงแนวทางปฏิบัติที่ดีในการตั้งค่า 400 ทั่วไป เพื่อป้องกันไม่ให้แฮ็กเกอร์ได้รับข้อมูลที่เป็นประโยชน์จากการตอบสนอง
JavaScript มีการป้องกันการโจมตี
<RegularExpressionProtection name="JsonPathRegExProtection"> <DisplayName>Regular Expression Protection 1</DisplayName> <Source>request</Source> <JSONPayload escapeSlashCharacter="true"> <JSONPath> <Expression>$</Expression> <Pattern><\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*> </Pattern> <Pattern>n\s*\\\\\s*slash</Pattern> <Pattern>n\s*\/\s*slash</Pattern> <Pattern>n\s*\\"\s*quotes</Pattern> <Pattern>n\s*\\b\s*space</Pattern> <Pattern>n\s*\\f\s*forwardfeed</Pattern> <Pattern>n\s*\\n\s*newline</Pattern> <Pattern>n\s*\\r\s*carria</Pattern> <Pattern>n\s*\\t\s*tab</Pattern> <Pattern>n\s*\\uFFFF\s*hex</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
ตัวอย่างด้านบนแสดงวิธีใช้นโยบาย regularExpressionProtection ในการประเมิน
เพย์โหลด JSON สำหรับ JavaScript รวมถึงการโจมตี โดยเฉพาะอย่างยิ่งเนื้อหาที่ดึงมาจาก
<JSONPath>
/<Expression>
ได้รับการประเมินตาม
นิพจน์ทั่วไปใน <JSONPath>
/<Pattern>
หากนิพจน์ทั่วไปใน
<JSONPath>
/<Pattern>
มีอักขระที่สงวน XML ไว้
(", &, ', < หรือ .) คุณต้องเข้ารหัส XML ก่อนที่จะรวมไว้ใน XML ของนโยบาย
ใหม่ ตัวอย่างเช่น ในตัวอย่างข้างต้น นิพจน์ทั่วไป
<\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*>
ได้รับการ
เข้ารหัส XML เป็น
<\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*>
นอกจากนี้ หากนิพจน์ทั่วไปมีเครื่องหมายทับ (/) คุณต้องกำหนดเป็นอักขระหลีก
โดยการตั้งค่าescapeSlashCharacter
<JSONPayload>
เป็น true
การจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
การจับคู่ที่ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็น Use Case ทั่วไป ลองดูตัวอย่างวิธีที่คุณทำ
ดำเนินการดังกล่าวในนิพจน์ทั่วไปโดยใช้โครงสร้าง (?i)
ด้วยวิธีนี้
ตัวอย่างเช่น DELETE
, delete
และ Delete
จะ
ประเมินให้เป็น "จริง"
<Pattern>[\s]*(?i)((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))</Pattern>
เกี่ยวกับนโยบายการป้องกันนิพจน์ทั่วไป
Apigee Edge ช่วยให้คุณสามารถกำหนดค่านิพจน์ทั่วไปที่สามารถ ประเมินจากการรับส่งข้อมูล API ระหว่างรันไทม์เพื่อระบุภัยคุกคามระดับเนื้อหาที่พบบ่อยที่ตามมา รูปแบบบางอย่าง
นิพจน์ทั่วไป หรือ regex คือชุดของสตริง ที่ระบุรูปแบบในสตริง นิพจน์ทั่วไปช่วยให้เนื้อหาสามารถเขียนโปรแกรมได้ ประเมินรูปแบบ คุณใช้นิพจน์ทั่วไปได้ เช่น เพื่อประเมินอีเมล เพื่อให้แน่ใจว่าโครงสร้างเป็นไปอย่างเหมาะสม ดูข้อมูลเพิ่มเติมได้ที่ปกติ นิพจน์ในบทแนะนำ Java
การใช้งานทั่วไปของ regularExpressionProtection คือการประเมิน JSON และ XML ที่มีเนื้อหาที่เป็นอันตราย
ไม่มีนิพจน์ทั่วไปสามารถกำจัดการโจมตีตามเนื้อหาทั้งหมด และกลไกหลายอย่างควร รวมกันเพื่อให้ป้องกันได้ในระดับลึก ส่วนนี้จะอธิบายรูปแบบที่แนะนำสำหรับ การยกเว้นเนื้อหา
ตัวอย่างการยกเว้น รูปแบบ
นิพจน์ทั่วไปต้องเข้ารหัส XML ในไฟล์การกำหนดค่า XML ของนโยบาย
ชื่อ | นิพจน์ทั่วไป |
---|---|
แทรก SQL |
[\s]*((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b)) |
การแทรกการรวมฝั่งเซิร์ฟเวอร์ |
<!--#(include|exec|echo|config|printenv)\s+.* XML ที่เข้ารหัส: <!--#(include|exec|echo|config|printenv)\s+.* |
การแทรกไวยากรณ์แบบย่อของ XPath |
(/(@?[\w_?\w:\*]+(\[[^]]+\])*)?)+ |
การแทรกไวยากรณ์แบบขยาย XPath |
/?(ancestor(-or-self)?|descendant(-or-self)?|following(-sibling)) |
การแทรก JavaScript |
<\s*script\b[^>]*>[^<]+<\s*/\s*script\s*> XML ที่เข้ารหัส: <\s*script\b[^>]*>[^<]+<\s*/\s*script\s*> |
การแทรกข้อยกเว้นของ Java |
.*?Exception in thread.* |
ตั้งค่าส่วนหัว Content-Type ในคำขอที่มีเพย์โหลด XML หรือ JSON
เพย์โหลดของนโยบายการป้องกันนิพจน์ทั่วไปอาจมีสิ่งต่อไปนี้ องค์ประกอบ:
-
องค์ประกอบ
<XMLPayload>
: ระบุว่าต้องดึงข้อมูลจาก เพย์โหลด XML และประเมินด้วยนิพจน์ทั่วไปที่ระบุหากคุณใช้
<XMLPayload>
ในนโยบาย ค่า ส่วนหัวของคำขอContent-Type
ต้องเป็นประเภทเนื้อหา XML เช่นapplication/xml
หรือtext/xml
-
องค์ประกอบ
<JSONPayload>
: ระบุว่าต้องดึงข้อมูล จากเพย์โหลด JSON และประเมินด้วยนิพจน์ทั่วไปที่ระบุหากคุณใช้
<JSONPayload>
ในนโยบาย ค่า ส่วนหัวของคำขอContent-Type
ต้องเป็นประเภทเนื้อหา JSON เช่นapplication/json
โดยปกติแล้ว คุณออกแบบ API ให้ยอมรับ XML หรือ JSON อย่างไรก็ตาม อาจมีสถานการณ์
ที่ API ยอมรับทั้ง 2 แบบ จากนั้นคุณสามารถกำหนดนโยบายการป้องกันนิพจน์ทั่วไป
ที่ใช้ทั้งองค์ประกอบ <XMLPayload>
และ <JSONPayload>
มีเพียงองค์ประกอบเดียวเท่านั้นที่จะนำมาใช้สำหรับคำขอเฉพาะโดยพิจารณาจากค่าของ
ส่วนหัว Content-Type
การอ้างอิงองค์ประกอบ
การอ้างอิงองค์ประกอบอธิบายองค์ประกอบและแอตทริบิวต์ของ regularExpressionProtection
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection 1</DisplayName> <Source>response</Source> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <URIPath> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </URIPath> <QueryParam name="a-query-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </QueryParam> <Header name="a-header"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Header> <FormParam name="a-form-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </FormParam> <Variable name="request.content"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Variable> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
<RegularExpressionProtection> แอตทริบิวต์
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
ประเภท | สตริง |
<Source> องค์ประกอบ
ระบุข้อความที่ต้องดึงข้อมูล
หากละเว้นองค์ประกอบ <Source>
ค่าเริ่มต้นจะเป็น
message
เช่น <Source>message</Source>
เมื่อตั้งค่าเป็น
คุณ message
นโยบายนี้จะใช้ข้อความคำขอเป็นแหล่งที่มาเมื่อแนบมากับคำขอ
ในทํานองเดียวกัน นโยบายจะใช้ข้อความตอบกลับเมื่อแนบไปกับขั้นตอนการตอบกลับ
หากแก้ไขข้อความต้นฉบับไม่ได้หรือหากเปลี่ยนเป็นประเภทที่ไม่ใช่ข้อความแล้ว นโยบาย แสดงผลข้อผิดพลาด
<Source>response</Source>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | สตริง |
<IgnoreUnresolvedVariables> องค์ประกอบ
กำหนดว่านโยบายจะแสดงข้อผิดพลาดหรือไม่เมื่อพบตัวแปรที่ แก้ไขไม่ได้
หากตั้งค่าเป็น false
(ค่าเริ่มต้น) นโยบายจะแสดงข้อผิดพลาดเมื่อแก้ไขไม่ได้
พบตัวแปร หากตั้งค่าเป็น true
ระบบจะถือว่าตัวแปรที่ยังไม่ได้แก้ไขเป็นค่าว่าง
string (Null)
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
ค่าเริ่มต้น: | เท็จ |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | บูลีน |
<URIPath> องค์ประกอบ
ระบุว่าต้องดึงข้อมูลจากเส้นทาง URI คำขอและประเมิน
เทียบกับนิพจน์ทั่วไปที่ให้ไว้ คุณต้องระบุอย่างน้อย 1 รายการ
องค์ประกอบ <Pattern>
ที่ระบุรูปแบบนิพจน์ทั่วไปที่จะจับคู่
<URIPath> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </URIPath>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
<QueryParam> องค์ประกอบ
ระบุว่าต้องดึงข้อมูลจากพารามิเตอร์การค้นหาคำขอ
ประเมินตามนิพจน์ทั่วไปที่ระบุ คุณต้องระบุอย่างน้อย 1 รายการ
องค์ประกอบ <Pattern>
ที่ระบุรูปแบบนิพจน์ทั่วไปที่จะจับคู่
<QueryParam name="a-query-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </QueryParam>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
ชื่อ | ชื่อพารามิเตอร์การค้นหาคำขอที่ต้องดึงข้อมูลมา การประเมินเทียบกับนิพจน์ทั่วไปที่ให้ไว้ | ไม่มี | ต้องระบุ |
<Header> องค์ประกอบ
ระบุว่าต้องดึงข้อมูลจากส่วนหัวคำขอและส่วนหัวการตอบกลับ
ประเมินตามนิพจน์ทั่วไปที่ระบุ คุณต้องระบุอย่างน้อย 1 รายการ
องค์ประกอบ <Pattern>
ที่ระบุรูปแบบนิพจน์ทั่วไปที่จะจับคู่
<Header name="a-header"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Header>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
ชื่อ |
ชื่อคำขอและส่วนหัวการตอบกลับที่ต้องดึงข้อมูล เพื่อการประเมินเทียบกับนิพจน์ทั่วไปที่ให้ไว้ |
ไม่มี | ต้องระบุ |
<FormParam> องค์ประกอบ
ระบุว่าจำเป็นต้องดึงข้อมูลจากพารามิเตอร์แบบฟอร์มคำขอและประเมิน
เทียบกับนิพจน์ทั่วไปที่ให้ไว้ คุณต้องระบุอย่างน้อย 1 รายการ
องค์ประกอบ <Pattern>
ที่ระบุรูปแบบนิพจน์ทั่วไปที่จะจับคู่
<FormParam name="a-form-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </FormParam>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
ชื่อ |
ชื่อพารามิเตอร์ของแบบฟอร์มคำขอที่ต้องดึงข้อมูล การประเมินเทียบกับนิพจน์ทั่วไปที่ให้ไว้ |
ไม่มี | ต้องระบุ |
<Variable> องค์ประกอบ
ระบุว่าต้องดึงข้อมูลจากตัวแปรที่กำหนดและประเมินตาม นิพจน์ทั่วไปที่มีให้
<Variable name="request.content"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Variable>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
ชื่อ |
ชื่อของตัวแปรที่ต้องดึงข้อมูลมาประเมิน เทียบกับนิพจน์ทั่วไปที่ให้ไว้ |
ไม่มี | ต้องระบุ |
<XMLPayload> องค์ประกอบ
ระบุว่าต้องดึงข้อมูลจากเพย์โหลด XML และประเมินด้วย แสดงนิพจน์ทั่วไปแล้ว
<XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
<XMLPayload>/<Namespaces> องค์ประกอบ
ระบุเนมสเปซที่จะใช้ในการประเมินค่า XPath
<XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | สตริง |
<XMLPayload>/<Namespaces>/<Namespace> องค์ประกอบ
ระบุเนมสเปซแต่ละรายการเพื่อ สามารถใช้ในการประเมิน XPath<Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | สตริง |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
คำนำหน้า |
ระบุคำนำหน้าเพื่อช่วยให้เนมสเปซที่ระบุมีคุณสมบัติเหมาะสม |
ไม่มี | ต้องระบุ |
<XMLPayload>/<XPath> องค์ประกอบ
ระบุ XPath ที่จะประเมินได้<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
<XMLPayload>/<XPath>/<Expression> องค์ประกอบ
ระบุนิพจน์ XPath ที่กำหนดไว้สำหรับตัวแปร เฉพาะนิพจน์ XPath 1.0 ได้ ตัวอย่างเช่น<Expression>/company/employee[@age>=$request.header.age]</Expression>
จะดึงข้อมูลรายละเอียดของพนักงานที่มีอายุมากกว่าหรือเท่ากับค่าที่ระบุใน
request.header.age
<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | สตริง |
<XMLPayload>/<XPath>/<Type> องค์ประกอบ
ระบุประเภทข้อมูล<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ค่าเริ่มต้น: | สตริง |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | สตริง |
ค่าที่ใช้ได้มีดังนี้ |
สตริง ค่าที่ถูกต้อง ได้แก่ |
<XMLPayload>/<XPath>/<Pattern> องค์ประกอบ
กำหนดรูปแบบนิพจน์ทั่วไป หากนิพจน์ทั่วไปใน
องค์ประกอบ <Pattern>
ของคุณมีอักขระที่สงวน XML (", &, ', < หรือ
.) คุณต้องเข้ารหัส XML ก่อนที่จะใส่
<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ต้องระบุ |
ประเภท: | สตริง |
<JSONPayload> องค์ประกอบ
ระบุว่าต้องดึงข้อมูลจากเพย์โหลด JSON และประเมินด้วยฟังก์ชัน แสดงนิพจน์ทั่วไปแล้ว
<JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | ไม่มี |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
escapeSlashCharacter |
ตั้งค่าเป็น |
จริง | ไม่บังคับ |
<JSONPayload>/<JSONPath>/<Expression> องค์ประกอบ
ระบุนิพจน์ JSONPath ที่กำหนดไว้สำหรับตัวแปร
<JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ไม่บังคับ |
ประเภท: | สตริง |
<JSONPayload>/<JSONPath>/<Pattern> องค์ประกอบ
กำหนดรูปแบบนิพจน์ทั่วไป หากนิพจน์ทั่วไปใน
องค์ประกอบ <Pattern>
มีอักขระที่สงวน XML (", &, ', < หรือ .)
คุณต้องเข้ารหัส XML ก่อนที่จะใส่
<JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ต้องระบุ |
ประเภท: | สตริง |
ข้อมูลอ้างอิงข้อผิดพลาด
ส่วนนี้อธิบายรหัสข้อผิดพลาดและข้อความที่แสดงผลและตัวแปรความผิดพลาดที่ Edge กำหนดเมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบ หากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด หากต้องการบันทึกข้อผิดพลาดและเพิ่มข้อผิดพลาดที่กำหนดเอง ให้ตั้งค่าแอตทริบิวต์ continueOnError="true"
ในองค์ประกอบรูทของนโยบาย
ดูข้อมูลเพิ่มเติมได้ที่
สิ่งที่คุณจำเป็นต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดที่แสดงผลจากนโยบาย Edge มีรูปแบบที่สอดคล้องกันตามที่อธิบายไว้ในข้อมูลอ้างอิงรหัสข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | ข้อความ |
---|---|
ExecutionFailed | เรียกใช้ regularExpressionProtection StepDefinition {0} ไม่สำเร็จ สาเหตุ: {1} |
InstantiationFailed | ไม่สามารถสร้างอินสแตนซ์ regularExpressionProtection StepDefinition {0} |
NonMessageVariable | ตัวแปร {0} ไม่แปลค่าเป็นข้อความ |
SourceMessageNotAvailable | ไม่มีข้อความ {0} สำหรับ regularExpressionProtection StepDefinition {1} |
ThreatDetected | ภัยคุกคามของนิพจน์ทั่วไปที่ตรวจพบใน {0}: นิพจน์ทั่วไป: {1} อินพุต: {2} |
VariableResolutionFailed | แก้ไขตัวแปร {0} ไม่สำเร็จ |
ข้อผิดพลาดในการทำให้ใช้งานได้
รหัสข้อผิดพลาด | ข้อความ | แก้ไข |
---|---|---|
CannotBeConvertedToNodeset | regularExpressionProtection {0}: ผลลัพธ์ของ xpath {1} แปลงเป็นชุดโหนดไม่ได้ บริบท {2} | build |
DuplicatePrefix | regularExpressionProtection {0}: คำนำหน้าซ้ำ {1} | build |
EmptyJSONPathExpression | regularExpressionProtection {0}: นิพจน์ JSONPath ว่างเปล่า | build |
EmptyXPathExpression | regularExpressionProtection {0}: นิพจน์ XPath ว่างเปล่า | build |
InvalidRegularExpression | regularExpressionProtection {0}: นิพจน์ทั่วไปไม่ถูกต้อง {1}, บริบท {2} | build |
JSONPathCompilationFailed | regularExpressionProtection {0}: คอมไพล์ jsonpath {1} ไม่สำเร็จ บริบท {2} | build |
NONEmptyPrefixMappedToEmptyURI | regularExpressionProtection {0}: คำนำหน้าที่ไม่ว่างเปล่า {1} แมปกับ URI ที่ว่างเปล่าไม่ได้ | build |
NoPatternsToEnforce | regularExpressionProtection {0}: ไม่มีรูปแบบที่จะบังคับใช้ใน {1} | build |
NothingToEnforce | RegularExpressionProtection {0}: ต้องมี URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload อย่างน้อย 1 รายการ | build |
XPathCompilationFailed | regularExpressionProtection {0}: คอมไพล์ xpath ไม่สำเร็จ {1} บริบท {2} | build |
ตัวแปรของข้อผิดพลาด
ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบาย
ตัวแปร | สถานที่ | ตัวอย่าง |
---|---|---|
fault.name="fault_name" |
fault_name คือชื่อของความผิดพลาดตามที่ระบุไว้ในตารางด้านบน | fault.name Matches "ThreatDetected" |
regularexpressionprotection.policy_name.failed |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นข้อผิดพลาด | regularexpressionprotection.Regular-Expressions-Protection-1.failed = true |