خط مشی XMLThreatProtection

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

چه

آسیب‌پذیری‌های XML را برطرف کرده و حملات به API خود را به حداقل برسانید. در صورت تمایل، حملات XML Payload را بر اساس محدودیت‌های پیکربندی شده شناسایی کنید. با استفاده از رویکردهای زیر، تهدیدات 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

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

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

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

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

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

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

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

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

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

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

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

عنصر <DisplayName>

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

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

N/A

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

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

عنصر <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 را اعمال می‌کند که سیستم آن را برابر با بدون محدودیت می‌داند.
حضور: اختیاری
نوع: عدد صحیح

عنصر <منبع>

پیامی که باید برای حملات XML payload بررسی شود. این گزینه معمولاً روی request تنظیم می‌شود، زیرا معمولاً نیاز به اعتبارسنجی درخواست‌های ورودی از برنامه‌های کلاینت دارید. وقتی روی message تنظیم شود، این عنصر به طور خودکار پیام درخواست را هنگام اتصال به جریان درخواست و پیام پاسخ را هنگام اتصال به جریان پاسخ ارزیابی می‌کند.

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

رشته.

از بین request ، response یا message انتخاب کنید.

عنصر <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 را اعمال می‌کند که سیستم آن را برابر با بدون محدودیت می‌داند.
حضور: اختیاری
نوع:

عدد صحیح

ویژگی‌ها

ویژگی پیش‌فرض حضور
شاملنظر درست اختیاری
شامل عنصر درست اختیاری
شامل دستورالعمل‌های پردازش درست اختیاری
شامل متن درست اختیاری

عنصر <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>/<Comment>

محدودیت کاراکتر برای هر توضیحی که در سند 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 مشاهده کنید.
steps.xmlthreatprotection.InvalidXMLPayload 500 اگر بار پیام ورودی مشخص شده توسط عنصر <Source> خط مشی XMLThreatProtection یک سند XML معتبر نباشد، این خطا رخ می دهد.
steps.xmlthreatprotection.SourceUnavailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یکی از مقادیر معتبر request ، response یا message نیست
steps.xmlthreatprotection.NonMessageVariable 500 این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست.

یادداشت ها:

  • نام خطا ExecutionFailed نام خطای پیش‌فرض است و صرف‌نظر از نوع خطای شناسایی‌شده، برگردانده می‌شود. با این حال، این پیش فرض را می توان با تنظیم یک ویژگی در سطح سازمان تغییر داد. هنگامی که این ویژگی تنظیم شود، نام خطا نشان دهنده خطای واقعی است. به عنوان مثال، "TextExceeded" یا "AttrValueExceeded". برای جزئیات به یادداشت های استفاده مراجعه کنید.
  • وضعیت 500 HTTP پیش فرض است. با این حال، وضعیت HTTP را می توان برای خطاهای جریان درخواست با تنظیم یک ویژگی در سطح سازمان به 400 تغییر داد. برای جزئیات به یادداشت های استفاده مراجعه کنید.

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

هیچ کدام.

متغیرهای خطا

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

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. 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>

طرحواره‌ها

یادداشت‌های استفاده

هر سروری که داده‌های آنلاین دریافت می‌کند، چه مخرب و چه غیرعمدی، در معرض حمله قرار دارد. برخی از حملات با ساخت اسناد نامعتبر که پتانسیل به خطر انداختن سیستم‌های back-end را دارند، از انعطاف‌پذیری XML سوءاستفاده می‌کنند. اسناد XML خراب یا بسیار پیچیده می‌توانند باعث شوند سرورها حافظه بیشتری نسبت به آنچه در دسترس است اختصاص دهند، منابع CPU و حافظه را درگیر کنند، تجزیه‌کننده‌ها را از کار بیندازند و به طور کلی پردازش پیام را غیرفعال کنند و حملات انکار سرویس در سطح برنامه ایجاد کنند.

پیکربندی خطای محافظت در برابر تهدید

اطلاعات مهم اگر در حال ایجاد FaultRules برای این خط‌مشی هستید: به طور پیش‌فرض، Edge یک کد وضعیت خطای داخلی سرور HTTP 500 و یک کد خطای ExecutionFailed را در صورتی که پیامی از خط‌مشی JSON یا XML Threat Protection عبور نکند، ارائه می‌دهد. می‌توانید این رفتار خطا را با یک ویژگی جدید در سطح سازمان تغییر دهید. هنگام تنظیم ویژگی org features.isPolicyHttpStatusEnabled روی true، رفتار زیر رخ می‌دهد:

  • درخواست: با یک سیاست محافظت در برابر تهدید که به هر جریان درخواستی متصل است، پیام‌های نامعتبر کد وضعیت 400 Bad Request را به همراه کد خطای سیاست مربوطه (به جای فقط ExecutionFailed) برمی‌گردانند.
  • پاسخ: با وجود یک سیاست محافظت در برابر تهدید که به هر جریان پاسخی متصل است، پیام‌های نامعتبر همچنان کد وضعیت ۵۰۰ خطای داخلی سرور را برمی‌گردانند و یکی از کدهای خطای سیاست مربوطه (به جای فقط ExecutionFailed) نمایش داده می‌شود.

مشتریان فضای ابری برای تنظیم ویژگی سازمانی باید با پشتیبانی Apigee Edge تماس بگیرند.

مباحث مرتبط

سیاست محافظت در برابر تهدید JSON

سیاست حفاظت از عبارات منظم

،

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

چه

آسیب‌پذیری‌های XML را برطرف کرده و حملات به API خود را به حداقل برسانید. در صورت تمایل، حملات XML Payload را بر اساس محدودیت‌های پیکربندی شده شناسایی کنید. با استفاده از رویکردهای زیر، تهدیدات 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

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

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

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

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

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

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

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

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

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

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

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

عنصر <DisplayName>

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

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

N/A

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

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

عنصر <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 را اعمال می‌کند که سیستم آن را برابر با بدون محدودیت می‌داند.
حضور: اختیاری
نوع: عدد صحیح

عنصر <منبع>

پیامی که باید برای حملات XML payload بررسی شود. این گزینه معمولاً روی request تنظیم می‌شود، زیرا معمولاً نیاز به اعتبارسنجی درخواست‌های ورودی از برنامه‌های کلاینت دارید. وقتی روی message تنظیم شود، این عنصر به طور خودکار پیام درخواست را هنگام اتصال به جریان درخواست و پیام پاسخ را هنگام اتصال به جریان پاسخ ارزیابی می‌کند.

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

رشته.

از بین request ، response یا message انتخاب کنید.

عنصر <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 را اعمال می‌کند که سیستم آن را برابر با بدون محدودیت می‌داند.
حضور: اختیاری
نوع:

عدد صحیح

ویژگی‌ها

ویژگی پیش‌فرض حضور
شاملنظر درست اختیاری
شامل عنصر درست اختیاری
شامل دستورالعمل‌های پردازش درست اختیاری
شامل متن درست اختیاری

عنصر <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>/<Comment>

محدودیت کاراکتر برای هر توضیحی که در سند 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 مشاهده کنید.
steps.xmlthreatprotection.InvalidXMLPayload 500 اگر بار پیام ورودی مشخص شده توسط عنصر <Source> خط مشی XMLThreatProtection یک سند XML معتبر نباشد، این خطا رخ می دهد.
steps.xmlthreatprotection.SourceUnavailable 500 این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست)
  • یکی از مقادیر معتبر request ، response یا message نیست
steps.xmlthreatprotection.NonMessageVariable 500 این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست.

یادداشت ها:

  • نام خطا ExecutionFailed نام خطای پیش‌فرض است و صرف‌نظر از نوع خطای شناسایی‌شده، برگردانده می‌شود. با این حال، این پیش فرض را می توان با تنظیم یک ویژگی در سطح سازمان تغییر داد. هنگامی که این ویژگی تنظیم شود، نام خطا نشان دهنده خطای واقعی است. به عنوان مثال، "TextExceeded" یا "AttrValueExceeded". برای جزئیات به یادداشت های استفاده مراجعه کنید.
  • وضعیت 500 HTTP پیش فرض است. با این حال، وضعیت HTTP را می توان برای خطاهای جریان درخواست با تنظیم یک ویژگی در سطح سازمان به 400 تغییر داد. برای جزئیات به یادداشت های استفاده مراجعه کنید.

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

هیچ کدام.

متغیرهای خطا

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

متغیرها کجا مثال
fault.name=" fault_name " fault_name نام خطا است، همانطور که در جدول خطاهای Runtime در بالا ذکر شده است. نام خطا آخرین قسمت کد خطا است. 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>

طرحواره‌ها

یادداشت‌های استفاده

هر سروری که داده‌های آنلاین دریافت می‌کند، چه مخرب و چه غیرعمدی، در معرض حمله قرار دارد. برخی از حملات با ساخت اسناد نامعتبر که پتانسیل به خطر انداختن سیستم‌های back-end را دارند، از انعطاف‌پذیری XML سوءاستفاده می‌کنند. اسناد XML خراب یا بسیار پیچیده می‌توانند باعث شوند سرورها حافظه بیشتری نسبت به آنچه در دسترس است اختصاص دهند، منابع CPU و حافظه را درگیر کنند، تجزیه‌کننده‌ها را از کار بیندازند و به طور کلی پردازش پیام را غیرفعال کنند و حملات انکار سرویس در سطح برنامه ایجاد کنند.

پیکربندی خطای محافظت در برابر تهدید

اطلاعات مهم اگر در حال ایجاد FaultRules برای این خط‌مشی هستید: به طور پیش‌فرض، Edge یک کد وضعیت خطای داخلی سرور HTTP 500 و یک کد خطای ExecutionFailed را در صورتی که پیامی از خط‌مشی JSON یا XML Threat Protection عبور نکند، ارائه می‌دهد. می‌توانید این رفتار خطا را با یک ویژگی جدید در سطح سازمان تغییر دهید. هنگام تنظیم ویژگی org features.isPolicyHttpStatusEnabled روی true، رفتار زیر رخ می‌دهد:

  • درخواست: با یک سیاست محافظت در برابر تهدید که به هر جریان درخواستی متصل است، پیام‌های نامعتبر کد وضعیت 400 Bad Request را به همراه کد خطای سیاست مربوطه (به جای فقط ExecutionFailed) برمی‌گردانند.
  • پاسخ: با وجود یک سیاست محافظت در برابر تهدید که به هر جریان پاسخی متصل است، پیام‌های نامعتبر همچنان کد وضعیت ۵۰۰ خطای داخلی سرور را برمی‌گردانند و یکی از کدهای خطای سیاست مربوطه (به جای فقط ExecutionFailed) نمایش داده می‌شود.

مشتریان فضای ابری برای تنظیم ویژگی سازمانی باید با پشتیبانی Apigee Edge تماس بگیرند.

مباحث مرتبط

سیاست محافظت در برابر تهدید JSON

سیاست حفاظت از عبارات منظم