خط‌مشی RegularExpressionProtection

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

چه

اطلاعات را از پیام استخراج می‌کند (برای نمونه، مسیر نشانی وب، پارامتر پُرسمان، سرایند، پارامتر فرم، متغیر، پایه‌بار XML، یا پایه‌بار JSON) و آن محتوا را دربرابر عبارات باقاعده ازپیش‌تعریف‌شده ارزیابی می‌کند. اگر هریک از عبارت‌های باقاعده مشخص‌شده به درست ارزیابی شود، پیام به‌عنوان تهدید درنظر گرفته می‌شود و رد می‌شود.

ویدیوها

برای کسب اطلاعات بیشتر درباره خط‌مشی «محافظت از عبارت‌های باقاعده»، ویدیوهای زیر را تماشا کنید.

ویدیو شرح
محافظت دربرابر حمله‌های تزریق SQL (New Edge) بااستفاده از خط‌مشی «محافظت از عبارت باقاعده» در واسط کاربر تجربه «لبه جدید»، دربرابر حمله‌های تزریق SQL محافظت کنید.
محافظت دربرابر حمله‌های تزریق SQL (Classic Edge) بااستفاده از خط‌مشی «محافظت از عبارت باقاعده» در «واسط کاربر Classic Edge» دربرابر حمله‌های تزریق SQL محافظت کنید.

نمونه‌ها

GitHub

نمونه regex-protection در GitHub نشان می‌دهد که چگونه حمله‌های بالقوه تزریق SQL را که ازطریق پارامتر پُرسمان صادر می‌شوند به‌دام بیندازید. همچنین، نمونه‌ای از رویه خوب تنظیم وضعیت خطای عمومی ۴۰۰ را نشان می‌دهد تا از دسترسی هکرها به اطلاعات مفید از پاسخ جلوگیری شود.

محافظت دربرابر حمله گنجاندن جاوا اسکریپت

<RegularExpressionProtection name="JsonPathRegExProtection">
    <DisplayName>Regular Expression Protection 1</DisplayName>
    <Source>request</Source>
    <JSONPayload escapeSlashCharacter="true">
       <JSONPath>
          <Expression>$</Expression>
          <Pattern>&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*\/\s*script\s*&gt;
          </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 برای حملات شامل جاوا اسکریپت استفاده کنید. به‌طور مشخص، محتوای استخراج‌شده توسط <JSONPath>/<Expression> براساس عبارت باقاعده در <JSONPath>/<Pattern> ارزیابی می‌شود.

اگر عبارت باقاعده در <JSONPath>/<Pattern> شامل نویسه‌های رزروشده XML ("، &، '، <، یا .) باشد، باید آن را قبل‌از اینکه در فایل پیکربندی XML خط‌مشی قرار دهید، با XML کدبندی کنید. برای مثال، در نمونه بالا، عبارت باقاعده <\s*script\b[^>]*>[^<]+<\s*\/\s*script\s*> به‌صورت &lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*\/\s*script\s*&gt; کدبندی XML شده است.

علاوه‌براین، اگر عبارت باقاعده شما شامل خط مورب (/) است، باید با تنظیم کردن مشخصه <JSONPayload> escapeSlashCharacter به true، از آن‌ها فرار کنید.

تطابق غیرحساس به حروف

انجام تطبیق غیرحساس به حروف بزرگ و کوچک یک مورد استفاده رایج است. در اینجا نمونه‌ای از نحوه انجام این کار در عبارت باقاعده بااستفاده از ساختار (?i) آورده شده است. برای مثال، در این نمونه، DELETE، delete، و Delete به درست ارزیابی خواهند شد.

<Pattern>[\s]*(?i)((delete)|(exec)|(drop\s*table)|(insert)|(shutdown)|(update)|(\bor\b))</Pattern>

درباره خط‌مشی «محافظت از عبارت باقاعده»

‫Apigee Edge به شما امکان می‌دهد عبارت‌های باقاعده‌ای را پیکربندی کنید که می‌توانند در زمان اجرا دربرابر ترافیک میانای برنامه‌سازی کاربردی ارزیابی شوند تا تهدیدهای رایج سطح محتوا را که از الگوهای خاصی پیروی می‌کنند شناسایی کنند.

عبارت باقاعده، یا به‌طور خلاصه 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:

&lt;!--#(include|exec|echo|config|printenv)\s+.*
تزریق نحو مخفف XPath
(/(@?[\w_?\w:\*]+(\[[^]]+\])*)?)+
تزریق نحو گسترده XPath
/?(ancestor(-or-self)?|descendant(-or-self)?|following(-sibling))
تزریق جاوا اسکریپت
<\s*script\b[^>]*>[^<]+<\s*/\s*script\s*>

کدبندی XML:

&lt;\s*script\b[^&gt;]*&gt;[^&lt;]+&lt;\s*/\s*script\s*&gt;
تزریق استثنای جاوا
.*?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 هر دو را بپذیرد. سپس می‌توانید خط‌مشی «محافظت از عبارت باقاعده» را تعریف کنید که از هر دو عنصر <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

نام داخلی سیاست. مقدار مشخصه name می تواند شامل حروف، اعداد، فاصله، خط تیره، زیرخط و نقطه باشد. این مقدار نمی تواند بیش از 255 کاراکتر باشد.

در صورت تمایل، از عنصر <DisplayName> برای برچسب گذاری خط مشی در ویرایشگر پروکسی UI مدیریت با نامی به زبان طبیعی دیگر استفاده کنید.

N/A مورد نیاز
continueOnError

برای بازگرداندن خطا در صورت شکست خط مشی، روی false تنظیم کنید. این رفتار مورد انتظار برای اکثر سیاست ها است.

روی true تنظیم کنید تا اجرای جریان حتی پس از شکست خط مشی ادامه یابد.

نادرست اختیاری
enabled

برای اجرای خط مشی روی true تنظیم کنید.

برای خاموش کردن خط مشی، روی false تنظیم کنید. این سیاست حتی اگر به یک جریان وابسته باشد اجرا نخواهد شد.

درست است اختیاری
async

این ویژگی منسوخ شده است.

نادرست منسوخ شده است

عنصر <DisplayName>

علاوه بر ویژگی name برای برچسب‌گذاری خط‌مشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.

<DisplayName>Policy Display Name</DisplayName>
پیش فرض

N/A

اگر این عنصر را حذف کنید، از مقدار ویژگی name خط مشی استفاده می شود.

حضور اختیاری
تایپ کنید رشته

عنصر <Source>

پیامی را نشان می‌دهد که اطلاعات باید از آن استخراج شود.

اگر عنصر <Source> ازقلم افتاده باشد، مقدار به‌طور پیش‌فرض روی message تنظیم می‌شود. برای مثال، <Source>message</Source>. وقتی روی message تنظیم شود، خط‌مشی از پیام درخواست به‌عنوان منبع استفاده می‌کند وقتی به جریان درخواست پیوست می‌شود. به‌همین ترتیب، وقتی خط‌مشی به جریان پاسخ پیوست می‌شود، از پیام پاسخ استفاده می‌کند.

اگر پیام منبع قابل‌حل نباشد یا به نوع غیرپیام حل شود، خط‌مشی خطا برمی‌گرداند.

<Source>response</Source>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: رشته

عنصر <IgnoreUnresolvedVariables>

تعیین می‌کند که آیا خط‌مشی هنگام مواجهه با متغیری که قابل‌حل نیست خطا برمی‌گرداند یا نه.

اگر روی false (پیش‌فرض) تنظیم شود، وقتی متغیر غیرقابل‌حلی برخورد می‌کند، خط‌مشی خطا برمی‌گرداند. اگر روی true تنظیم شود، متغیر حل‌نشده به‌عنوان رشته خالی (Null) درنظر گرفته می‌شود.

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
پیش‌فرض: نادرست
حضور: اختیاری
نوع: بولی

عنصر <URIPath>

مشخص می‌کند که اطلاعات باید از مسیر نشانی وب درخواست استخراج شود و براساس عبارات باقاعده ارائه‌شده ارزیابی شود. باید حداقل یک عنصر <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>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: موجود نیست

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور
نام نام پارامتر پُرسمان درخواست که اطلاعات باید از آن استخراج شود تا با عبارات باقاعده ارائه‌شده ارزیابی شود. موجود نیست الزامی

عنصر <Header>

مشخص می‌کند که اطلاعات باید از سرصفحه‌های درخواست و پاسخ استخراج شود و دربرابر عبارات باقاعده ارائه‌شده ارزیابی شود. باید حداقل یک عنصر <Pattern> ارائه دهید که الگوی عبارت باقاعده‌ای را برای مطابقت مشخص می‌کند.

<Header name="a-header">
  <Pattern>REGEX PATTERN</Pattern>
  <Pattern>REGEX PATTERN</Pattern>
</Header>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: موجود نیست

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور
نام

نام سرایند درخواست و پاسخ که اطلاعات باید از آن استخراج شود تا براساس عبارات باقاعده ارائه‌شده ارزیابی شود.

موجود نیست الزامی

عنصر <FormParam>

مشخص می‌کند که اطلاعات باید از پارامتر فرم درخواست استخراج شود و دربرابر عبارات باقاعده ارائه‌شده ارزیابی شود. باید حداقل یک عنصر <Pattern> ارائه دهید که الگوی عبارت باقاعده‌ای را برای مطابقت مشخص می‌کند.

<FormParam name="a-form-param">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</FormParam>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: موجود نیست

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور
نام

نام پارامتر فرم درخواست که اطلاعات باید از آن برای ارزیابی دربرابر عبارات باقاعده ارائه‌شده استخراج شود.

موجود نیست الزامی

عنصر <Variable>

مشخص می‌کند که اطلاعات باید از متغیر داده‌شده استخراج شود و دربرابر عبارات باقاعده ارائه‌شده ارزیابی شود.

<Variable name="request.content">
   <Pattern>REGEX PATTERN</Pattern>
   <Pattern>REGEX PATTERN</Pattern>
</Variable>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: موجود نیست

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور
نام

نام متغیری که اطلاعات آن باید برای ارزیابی دربرابر عبارات باقاعده ارائه‌شده استخراج شود.

موجود نیست الزامی

عنصر <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>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: رشته

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور
پیشوند

پیشوندی ارائه می‌کند تا به واجدشرایط کردن فضای نام داده‌شده کمک کند.

موجود نیست الزامی

عنصر <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>
پیش‌فرض: رشته
حضور: اختیاری
نوع: رشته
مقادیر معتبر:

رشته. مقادیر معتبر شامل string، boolean، int، long، float، double، و nodeset می‌شود.

<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>
پیش‌فرض: موجود نیست
حضور: اختیاری
نوع: موجود نیست

مشخصه‌ها

مشخصه شرح پیش‌فرض حضور
escapeSlashCharacter

برای فرار از هر نویسه کج‌خط روبه‌جلو (/) در عبارت‌های باقاعده در <JSONPath>/<Pattern>، روی true تنظیم کنید.

درست اختیاری

عنصر <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 «تعریف گام» {0} مربوط به «محافظت با عبارت باقاعده» اجرا نشد. دلیل: {۱}
InstantiationFailed ‫RegularExpressionProtection StepDefinition {0} نمونه‌سازی نشد
NonMessageVariable متغیر {0} به «پیام» تبدیل نمی‌شود
SourceMessageNotAvailable پیام {0} برای «تعریف گام» {1} در RegularExpressionProtection دردسترس نیست
ThreatDetected تهدید عبارت باقاعده در {0} شناسایی شد: عبارت باقاعده: {1} ورودی: {2}
VariableResolutionFailed متغیر {0} تجزیه نشد

خطاهای استقرار

کد خطا پیام رفع اشکال
CannotBeConvertedToNodeset ‫RegularExpressionProtection {0}: نتیجه xpath {1} نمی‌تواند به مجموعه گره تبدیل شود. بافت {2}
DuplicatePrefix ‫RegularExpressionProtection {0}: پیشوند تکراری {1}
EmptyJSONPathExpression RegularExpressionProtection {0}: عبارت JSONPath خالی است
EmptyXPathExpression RegularExpressionProtection {0}: عبارت XPath خالی است
InvalidRegularExpression ‫RegularExpressionProtection {0}: عبارت باقاعده نامعتبر {1}، زمینه {2}
JSONPathCompilationFailed RegularExpressionProtection {0}: jsonpath {1} تدوین نشد. بافت {2}
NONEmptyPrefixMappedToEmptyURI RegularExpressionProtection {0}: پیشوند غیرخالی {1} نمی‌تواند به نشانی وب خالی نگاشت شود
NoPatternsToEnforce RegularExpressionProtection {0}: الگویی برای اعمال در {1} وجود ندارد
NothingToEnforce RegularExpressionProtection {0}: حداقل یکی از URIPath،‏ QueryParam،‏ Header، FormParam،‏ XMLPayload،‏ JSONPayload الزامی است
XPathCompilationFailed ‫RegularExpressionProtection {0}: ‏ xpath‏ {1} تدوین نشد. بافت {2}

متغیرهای خطا

این متغیرها زمانی تنظیم می‌شوند که این خط‌مشی باعث ایجاد خطا شود. برای اطلاعات بیشتر، آنچه باید درباره خطاهای خط‌مشی بدانیدرا ببینید.

متغیر مکان مثال
fault.name="fault_name" ‫fault_name نام خطا است، همان‌گونه که در جدول بالا فهرست شده است. fault.name Matches "ThreatDetected"
regularexpressionprotection.policy_name.failed ‫policy_name نام مشخص‌شده کاربر برای خط‌مشی‌ای است که خطا را ایجاد کرده است. regularexpressionprotection.Regular-Expressions-Protection-1.failed = true

طرح‌واره‌ها

موضوعات مرتبط

خط‌مشی محافظت دربرابر تهدید JSON

خط‌مشی «محافظت دربرابر تهدیدات زبان نشانه‌گذاری توسعه‌پذیر»