הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
המדיניות RegularExpressionProtection מחלצת מידע מהודעה (לדוגמה, נתיב URI, פרמטר שאילתה, כותרת, פרמטר טופס, משתנה, מטען ייעודי (payload) של XML או מטען ייעודי (payload) של JSON) ומשווה את הערך לביטויים רגולריים שנועדו לזהות איומים. אם השוואה של ביטוי רגולרי כלשהו מחזירה את הערך True, המדיניות מחזירה שגיאה.
המדיניות הזו היא מדיניות ניתנת להרחבה, והשימוש בה עשוי להשפיע על העלויות או על הניצול, בהתאם לרישיון Apigee שלכם. מידע על סוגי המדיניות וההשלכות של השימוש זמין במאמר סוגי מדיניות.
דוגמאות
GitHub
בדוגמה של regex-protection ב-GitHub אפשר לראות איך לזהות מתקפות פוטנציאליות של הזרקת SQL שמופעלות באמצעות פרמטר שאילתה שעשוי להכיל קוד זדוני בתג <script>.
הדוגמה גם ממחישה שיטה מומלצת להגדרת סטטוס שגיאה כללי 400 כדי למנוע מהאקרים להשיג מידע שימושי מהתגובה.
הגנה מפני מתקפות שכוללות JavaScript
<RegularExpressionProtection name="JsonPathRegExProtection"> <Source>request</Source> <JSONPayload escapeSlashCharacter="true"> <JSONPath> <Expression>$</Expression> <Pattern><![CDATA[ <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*> ]]></Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
בדוגמה שלמעלה אפשר לראות איך משתמשים במדיניות RegularExpressionProtection כדי להעריך מטען ייעודי (payload) של JSON לצורך הכללה של JavaScript בהתקפות. באופן ספציפי, התוכן שחולץ על ידי
<JSONPath>/<Expression> נבדק בהתאם לביטוי הרגולרי ב-<JSONPath>/<Pattern>.
אם הביטוי הרגולרי ב-<JSONPath>/<Pattern> כולל תווים שמורים ב-XML (", &, ', <, או >), צריך להוסיף אותו לקטע CDATA (נתוני תווים), כמו שמוצג בדוגמה שלמעלה, או לקודד את התווים השמורים ב-XML: לדוגמה, להחליף את < ב-< ואת > ב->.
בנוסף, אם הביטוי הרגולרי כולל לוכסנים (/), צריך להגדיר את מאפיין <JSONPayload> escapeSlashCharacter
כ-true כדי לבצע escape ללוכסנים.
התאמה ללא תלות ברישיות
תרחיש נפוץ לשימוש הוא התאמה לא תלוית-רישיות. דוגמה לאופן שבו אפשר לעשות את זה בביטוי רגולרי באמצעות המבנה (?i). בדוגמה הזו, הביטויים DELETE, delete ו-Delete יחזירו את הערך True.
<Pattern>[\s]*(?i)((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))</Pattern>
בדיקות של פרמטרים של טופס
<RegularExpressionProtection name="REP-Formparam">
<Source>request</Source>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<FormParam name="firstname">
<Pattern><![CDATA[[-+=$%&]]]></Pattern>
</FormParam>
<FormParam name="lastname">
<Pattern><![CDATA[[-+=$%&]]]></Pattern>
</FormParam>
</RegularExpressionProtection>הגדרת המדיניות RegularExpressionProtection תבדוק את הפרמטרים של הטופס
לחיפוש מופעים של תווים מיוחדים, בתוך הקבוצה [-+=$%&].
למדיניות הזו תהיה השפעה רק אם כותרת content-type בבקשה היא application/x-www-form-urlencoded. הגדרת המדיניות משתמשת בקטע CDATA (נתוני תווים) כדי לעטוף את הביטויים הרגולריים, בגלל התו &, שהוא מיוחד ב-XML.
מידע על מדיניות ההגנה על ביטויים רגולריים
Apigee מאפשר להגדיר ביטויים רגולריים שאפשר להעריך אותם ביחס לתנועת נתונים ב-API בזמן ריצה, כדי לזהות איומים נפוצים ברמת התוכן שפועלים לפי דפוסים מסוימים.
ביטוי רגולרי, או regex בקיצור, הוא קבוצה של מחרוזות שמציינות תבנית במחרוזת. ביטויים רגולריים מאפשרים להעריך תוכן באופן פרוגרמטי כדי לזהות דפוסים. לדוגמה, אפשר להשתמש בביטויים רגולריים כדי להעריך כתובת אימייל ולוודא שהמבנה שלה תקין. מידע נוסף זמין במאמר Regular Expressions (ביטויים רגולריים) במדריכי Java.
השימוש הנפוץ ביותר ב-RegularExpressionProtection הוא הערכה של מטען ייעודי (payload) בפורמט JSON ו-XML כדי לזהות תוכן זדוני.
אף ביטוי רגולרי לא יכול למנוע את כל המתקפות שמבוססות על תוכן, ולכן צריך לשלב כמה מנגנונים כדי להפעיל הגנה מעמיקה. בקטע הזה מתוארים כמה דפוסים מומלצים להחרגת תוכן.
דוגמאות לתבניות החרגה
צריך לקודד ביטויים רגולריים ב-XML בקובץ ההגדרות של המדיניות ב-XML. כדאי לעיין גם במאמר בנושא דפוס אנטי: שימוש בכמתים חמדנים במדיניות RegularExpressionProtection.
| שם | ביטוי רגולרי |
|---|---|
| הזרקת SQL |
[\s]*((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b)) |
| הזרקת Server-Side Include |
<!--#(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*> |
הגדרת הכותרת Content-Type בבקשה עם מטען ייעודי (payload) מסוג XML או JSON
ה-payload של מדיניות ההגנה על ביטויים רגולריים יכול לכלול את הרכיבים הבאים:
-
רכיב
<XMLPayload>: מציין שצריך לחלץ מידע ממטען ייעודי (payload) של XML ולהעריך אותו ביחס לביטוי הרגולרי שסופק.אם משתמשים ב-
<XMLPayload>במדיניות, הכותרתContent-Typeשל הבקשה צריכה להיות מסוג תוכן XML, כמוapplication/xmlאוtext/xml. -
רכיב
<JSONPayload>: מציין שצריך לחלץ מידע ממטען ייעודי (payload) של JSON ולהעריך אותו בהתאם לביטוי הרגולרי שסופק.אם משתמשים ב-
<JSONPayload>במדיניות, הכותרתContent-Typeשל הבקשה צריכה להיות סוג תוכן JSON כמוapplication/json.
בדרך כלל, כשמעצבים API, הוא מתוכנן לקבל XML או JSON. עם זאת, יכול להיות תרחיש שבו ה-API קיבל את שניהם. אחר כך תוכלו להגדיר מדיניות הגנה באמצעות ביטוי רגולרי
שמשתמשת גם ברכיב <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> attributes
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
בטבלה הבאה מתוארים מאפיינים שמשותפים לכל רכיבי ההורה של המדיניות:
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
name |
השם הפנימי של המדיניות. הערך של מאפיין אפשר להשתמש ברכיב |
לא רלוונטי | חובה |
continueOnError |
מגדירים את הערך הגדרה ל- |
FALSE | אופציונלי |
enabled |
מגדירים את המדיניות למצב מגדירים את הערך |
TRUE | אופציונלי |
async |
המאפיין הזה הוצא משימוש. |
FALSE | הוצא משימוש |
אלמנט <DisplayName>
משתמשים בו בנוסף למאפיין name כדי לתת למדיניות שם אחר בשפה טבעית, לסימון המדיניות בכלי לעריכת פרוקסי בממשק המשתמש לניהול.
<DisplayName>Policy Display Name</DisplayName>
| ברירת מחדל |
לא רלוונטי אם לא מציינים את הרכיב הזה, המערכת משתמשת בערך של המאפיין |
|---|---|
| נוכחות | אופציונלי |
| סוג | String |
רכיב <Source>
מציין את ההודעה שממנה צריך לחלץ מידע.
אם לא מציינים את הרכיב <Source>, ערך ברירת המחדל הוא
message. לדוגמה, <Source>message</Source>. אם המדיניות מוגדרת לערך message, היא משתמשת בהודעת הבקשה כמקור כשהיא מצורפת לזרימת בקשה. באופן דומה, המדיניות משתמשת בהודעת התגובה כשהיא מצורפת לזרימת תגובה.
אם אי אפשר לפתור את הודעת המקור או אם הפתרון הוא לא מסוג הודעה, המדיניות מחזירה שגיאה.
<Source>response</Source>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | String |
אלמנט <IgnoreUnresolvedVariables>
ההגדרה הזו קובעת אם המדיניות תחזיר שגיאה כשהיא נתקלת במשתנה שלא ניתן לפתור.
אם המדיניות מוגדרת כ-false (ברירת המחדל), המדיניות מחזירה שגיאה כשנתקלים במשתנה שלא ניתן לפתור. אם הערך הוא true, המשתנה שלא נפתר נחשב למחרוזת ריקה (Null).
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
| ברירת מחדל: | FALSE |
| נוכחות: | אופציונלי |
| סוג: | בוליאני |
אלמנט <URIPath>
מציין שצריך לחלץ מידע מנתיב ה-URI של הבקשה ולהעריך אותו ביחס לביטויים הרגולריים שסופקו. צריך לספק לפחות רכיב <Pattern> אחד שמציין תבנית של ביטוי רגולרי להתאמה.
<URIPath> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </URIPath>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | לא רלוונטי |
אלמנט <QueryParam>
מציין שצריך לחלץ מידע מפרמטר השאילתה של הבקשה ולהעריך אותו בהתאם לביטויים הרגולריים שסופקו. צריך לספק לפחות רכיב <Pattern> אחד שמציין תבנית של ביטוי רגולרי להתאמה.
<QueryParam name="a-query-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </QueryParam>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | לא רלוונטי |
מאפיינים
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
| name | שם הפרמטר של השאילתה בבקשה שממנו צריך לחלץ מידע כדי לבצע הערכה מול הביטויים הרגולריים שסופקו. | לא רלוונטי | חובה |
אלמנט <Header>
ההגדרה הזו מציינת שצריך לחלץ מידע מכותרות הבקשה והתגובה ולבדוק אותו מול הביטויים הרגולריים שסופקו. צריך לספק לפחות רכיב <Pattern> אחד שמציין תבנית של ביטוי רגולרי להתאמה.
<Header name="a-header"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Header>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | לא רלוונטי |
מאפיינים
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
| name |
השם של כותרת הבקשה והתגובה שממנה צריך לחלץ מידע לצורך הערכה מול הביטויים הרגולריים שצוינו. |
לא רלוונטי | חובה |
רכיב <FormParam>
מציין שצריך לחלץ מידע מפרמטר של טופס הבקשה ולהעריך אותו בהשוואה לביטויים הרגולריים שסופקו. צריך לספק לפחות רכיב <Pattern> אחד שמציין תבנית של ביטוי רגולרי להתאמה.
<FormParam name="a-form-param"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </FormParam>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | לא רלוונטי |
מאפיינים
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
| name |
שם הפרמטר בטופס הבקשה שממנו צריך לחלץ מידע כדי לבצע הערכה מול הביטויים הרגולריים שסופקו. |
לא רלוונטי | חובה |
אלמנט <Variable>
מציין שצריך לחלץ מידע מהמשתנה הנתון ולהעריך אותו בהשוואה לביטויים הרגולריים שסופקו.
<Variable name="request.content"> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </Variable>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | לא רלוונטי |
מאפיינים
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
| name |
שם המשתנה שממנו צריך לחלץ מידע לצורך הערכה מול הביטויים הרגולריים שצוינו. |
לא רלוונטי | חובה |
אלמנט <XMLPayload>
ההוראה הזו מציינת שצריך לחלץ מידע ממטען ייעודי (payload) של 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>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | String |
אלמנט <XMLPayload>/<Namespaces>/<Namespace>
מציין כל מרחב שמות שישמש להערכת XPath.<Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | String |
מאפיינים
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
| תחילית |
מספק קידומת כדי לעזור להגדיר מרחב שמות נתון. |
לא רלוונטי | חובה |
רכיב <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> element
מציינים את ביטוי ה-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>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | String |
<XMLPayload>/<XPath>/<Type> element
מציין את סוג נתוני הפלט הרצוי.
בדרך כלל משתמשים בערכים string או nodeset. משתמשים ב-"string" אם בטוחים ששאילתת ה-XPath תניב לכל היותר ערך אחד, או אם רוצים לבדוק לכל היותר ערך אחד. אם שאילתת ה-XPath עשויה להחזיר כמה ערכים, צריך לציין 'nodeset' כדי לבדוק את כל הערכים.
לדוגמה, הביטוי הבא של XPath: //*/@*. הוא תואם לכל המאפיינים בכל האלמנטים. אם מציינים 'string' בתור Type, Apigee יכפה את התוצאה של השאילתה הזו למחרוזת אחת. המחרוזת תהיה הערך של אחד המאפיינים באחד מהרכיבים במסמך ה-XML, אבל לא מוגדר איזה מאפיין ואיזה רכיב. לאחר מכן, מערכת Apigee תבצע התאמה של התבנית לערך של המאפיין היחיד הזה. סביר להניח שזה לא מה שרצית.
לעומת זאת, אם מציינים 'nodeset' כ-Type של ביטוי ה-XPath הזה, Apigee יבצע התאמת תבניות לכל אחד מערכי המאפיינים בכל רכיב במסמך ה-XML.
<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
| ברירת מחדל: | מחרוזת |
| נוכחות: | אופציונלי |
| סוג: | String |
| הערכים התקפים: |
אחת ממילות המפתח האלה: |
<XMLPayload>/<XPath>/<Pattern> element
הגדרת תבנית הביטוי הרגולרי. אם ביטוי רגולרי ברכיב <Pattern> כולל תווים שמורים ב-XML (", &, ', <, או .), צריך לקודד אותו ב-XML לפני שכוללים אותו.
<XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </XPath>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | חובה |
| סוג: | String |
רכיב <JSONPayload>
ההגדרה הזו מציינת שצריך לחלץ מידע ממטען ייעודי (payload) של JSON ולהעריך אותו בהשוואה לביטויים הרגולריים שצוינו.
<JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | לא רלוונטי |
מאפיינים
| מאפיין | תיאור | ברירת מחדל | נוכחות |
|---|---|---|---|
| escapeSlashCharacter |
מגדירים את הערך |
TRUE | אופציונלי |
אלמנט <JSONPayload>/<JSONPath>/<Expression>
מציין את ביטוי ה-JSONPath שהוגדר למשתנה.
<JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | אופציונלי |
| סוג: | String |
<JSONPayload>/<JSONPath>/<Pattern> element
הגדרת תבנית הביטוי הרגולרי. אם ביטוי רגולרי ברכיב <Pattern> כולל תווים שמורים ב-XML (", &, ', <, או .), צריך לקודד אותו ב-XML לפני שכוללים אותו.
<JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath>
| ברירת מחדל: | לא רלוונטי |
| נוכחות: | חובה |
| סוג: | String |
הפניה לשגיאה
בקטע הזה מפורטים קודי השגיאות וההודעות שמוחזרים ומשתני השגיאה שמוגדרים על ידי Apigee כשמדיניות כזו מפעילה שגיאה. חשוב לדעת את המידע הזה אם אתם מפתחים כללי תקלות לטיפול בתקלות. אם רוצים לתעד שגיאה ולהציג שגיאה מותאמת אישית משלכם, צריך להגדיר את המאפיין continueOnError="true" ברכיב הבסיס של המדיניות.
מידע נוסף על שגיאות שקשורות למדיניות ועל טיפול בשגיאות
שגיאות זמן ריצה
השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.
| קוד שגיאה | הודעה |
|---|---|
ExecutionFailed |
Failed to execute the RegularExpressionProtection StepDefinition {0}. Reason: {1} |
InstantiationFailed |
Failed to instantiate the RegularExpressionProtection StepDefinition {0} |
NonMessageVariable |
Variable {0} does not resolve to a Message |
SourceMessageNotAvailable |
{0} message is not available for RegularExpressionProtection StepDefinition {1} |
ThreatDetected |
Regular Expression Threat Detected in {0}: regex: {1} input: {2} |
VariableResolutionFailed |
Failed to resolve variable {0} |
שגיאות פריסה
| קוד שגיאה | הודעה | תיקון |
|---|---|---|
CannotBeConvertedToNodeset |
RegularExpressionProtection {0}: Result of xpath {1} cannot be converted to nodeset.
Context {2} |
build |
DuplicatePrefix |
RegularExpressionProtection {0}: Duplicate prefix {1} |
build |
EmptyJSONPathExpression |
RegularExpressionProtection {0}: Empty JSONPath expression |
build |
EmptyXPathExpression |
RegularExpressionProtection {0}: Empty XPath expression |
build |
InvalidRegularExpression |
RegularExpressionProtection {0}: Invalid Regular Expression {1}, Context {2} |
build |
JSONPathCompilationFailed |
RegularExpressionProtection {0}: Failed to compile jsonpath {1}. Context {2} |
build |
NONEmptyPrefixMappedToEmptyURI |
RegularExpressionProtection {0}: Non-empty prefix {1} cannot be mapped to empty
uri |
build |
NoPatternsToEnforce |
RegularExpressionProtection {0}: No patterns to enforce in {1} |
build |
NothingToEnforce |
RegularExpressionProtection {0}: at least one of URIPath, QueryParam, Header,
FormParam, XMLPayload, JSONPayload is mandatory |
build |
XPathCompilationFailed |
RegularExpressionProtection {0}: Failed to compile xpath {1}. Context {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 |
סכימות
נושאים קשורים
מדיניות להגנה מפני איומים ב-JSON
מדיניות הגנה מפני איומים ב-XML