شما در حال مشاهده مستندات 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 | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
| پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
|---|---|
| حضور | اختیاری |
| تایپ کنید | رشته |
عنصر <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>
| پیشفرض: | درخواست |
| حضور: | اختیاری |
| نوع: | رشته. از بین |
عنصر <StructuralLimits>
محدودیتهای ساختاری که باید توسط سیاست بررسی و اجرا شوند را مشخص میکند.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | ناموجود |
| حضور: | اختیاری |
| نوع: | ناموجود |
عنصر <StructuralLimits>/<NodeDepth>
حداکثر عمق گره مجاز در XML را مشخص میکند.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <StructuralLimits>/<AttributeCountPerElement>
حداکثر تعداد ویژگیهای مجاز برای هر عنصر را مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<AttributeCountPerElement> در قطعه کد زیر، تأیید میکند که عناصر book ، title ، author و year هر کدام بیش از 2 ویژگی ندارند. توجه داشته باشید که ویژگیهایی که برای تعریف فضاهای نام استفاده میشوند، شمارش نمیشوند. <StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <StructuralLimits>/<NameSpaceCountPerElement>
حداکثر تعداد تعاریف فضای نام مجاز برای هر عنصر را مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<e1 attr1="val1" attr2="val2">
<e2 xmlns="http://apigee.com" xmlns:yahoo="http://yahoo.com" one="1" yahoo:two="2"/>
</e1>هنگام تجزیه و تحلیل XML بالا، مقدار عنصر <NamespaceCountPerElement> در قطعه کد زیر تأیید میکند که عناصر e1 و e2 هر کدام بیش از 2 تعریف فضای نام ندارند. در این حالت، <e1> دارای 0 تعریف فضای نام و <e2> دارای 2 تعریف فضای نام است: xmlns="http://apigee.com" و xmlns:yahoo="http://yahoo.com" .
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <StructuralLimits>/<ChildCount>
حداکثر تعداد عناصر فرزند مجاز برای هر عنصر را مشخص میکند.
<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>
<Text> در قطعه کد سیاست زیر، تأیید میکند که مقادیر متن عنصر Learning XML ، Erik T. Ray, و 2003 هر کدام بیش از 15 کاراکتر نباشند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<Attribute>
محدودیت کاراکتر را برای هر مقدار ویژگی موجود در سند XML مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Attribute> در قطعه کد سیاست زیر، تأیید میکند که مقدار ویژگی WEB از 10 کاراکتر تجاوز نمیکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<NamespaceURI>
محدودیت کاراکتر را برای هر URI فضای نام موجود در سند XML مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<ns1:myelem xmlns:ns1="http://ns1.com"/>
<NamespaceURI> در قطعه کد سیاست زیر، تأیید میکند که مقدار فضای نام URI یعنی http://ns1.com از 10 کاراکتر تجاوز نمیکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<Comment>
محدودیت کاراکتر برای هر توضیحی که در سند XML وجود دارد را مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<book category="WEB"> <!-- This is a comment --> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Comment> در قطعه کد زیر، اعتبارسنجی میکند که متن نظر This is a comment از 10 کاراکتر تجاوز نکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<ProcessingInstructionData>
محدودیت کاراکتری را برای هر متن دستورالعمل پردازش موجود در سند XML مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<ProcessingInstructionData> در قطعه کد سیاست زیر، تأیید میکند که متن دستورالعمل پردازش type="text/xsl" href="style.xsl" از 10 کاراکتر تجاوز نمیکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
مرجع خطا
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed | 500 | خط مشی XMLThreatProtection می تواند انواع مختلفی از خطاهای ExecutionFailed را ایجاد کند. بیشتر این خطاها زمانی رخ میدهند که از یک آستانه مشخص در خطمشی تجاوز کند. این نوع خطاها عبارتند از: طول نام عنصر ، تعداد فرزند ، عمق گره ، تعداد ویژگی ، طول نام ویژگی و بسیاری دیگر. می توانید لیست کامل را در مبحث عیب یابی خطای زمان اجرا خط مشی XMLThreatProtection مشاهده کنید. | build |
steps.xmlthreatprotection.InvalidXMLPayload | 500 | اگر بار پیام ورودی مشخص شده توسط عنصر <Source> خط مشی XMLThreatProtection یک سند XML معتبر نباشد، این خطا رخ می دهد. | build |
steps.xmlthreatprotection.SourceUnavailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
| build |
steps.xmlthreatprotection.NonMessageVariable | 500 | این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست. | build |
یادداشت ها:
- نام خطا 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 را شناسایی کنید:
Content-Type هدر درخواست یا پاسخ روی application/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 | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر | N/A | مورد نیاز |
continueOnError | برای بازگرداندن خطا در صورت شکست خط مشی، روی روی | نادرست | اختیاری |
enabled | برای اجرای خط مشی روی برای خاموش کردن خط مشی، روی | درست است | اختیاری |
async | این ویژگی منسوخ شده است. | نادرست | منسوخ شده است |
عنصر <DisplayName>
علاوه بر ویژگی name برای برچسبگذاری خطمشی در ویرایشگر پروکسی رابط کاربری مدیریت با نامی متفاوت و به زبان طبیعی، از آن استفاده کنید.
<DisplayName>Policy Display Name</DisplayName>
| پیش فرض | N/A اگر این عنصر را حذف کنید، از مقدار ویژگی |
|---|---|
| حضور | اختیاری |
| تایپ کنید | رشته |
عنصر <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>
| پیشفرض: | درخواست |
| حضور: | اختیاری |
| نوع: | رشته. از بین |
عنصر <StructuralLimits>
محدودیتهای ساختاری که باید توسط سیاست بررسی و اجرا شوند را مشخص میکند.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | ناموجود |
| حضور: | اختیاری |
| نوع: | ناموجود |
عنصر <StructuralLimits>/<NodeDepth>
حداکثر عمق گره مجاز در XML را مشخص میکند.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <StructuralLimits>/<AttributeCountPerElement>
حداکثر تعداد ویژگیهای مجاز برای هر عنصر را مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<AttributeCountPerElement> در قطعه کد زیر، تأیید میکند که عناصر book ، title ، author و year هر کدام بیش از 2 ویژگی ندارند. توجه داشته باشید که ویژگیهایی که برای تعریف فضاهای نام استفاده میشوند، شمارش نمیشوند. <StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <StructuralLimits>/<NameSpaceCountPerElement>
حداکثر تعداد تعاریف فضای نام مجاز برای هر عنصر را مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<e1 attr1="val1" attr2="val2">
<e2 xmlns="http://apigee.com" xmlns:yahoo="http://yahoo.com" one="1" yahoo:two="2"/>
</e1>هنگام تجزیه و تحلیل XML بالا، مقدار عنصر <NamespaceCountPerElement> در قطعه کد زیر تأیید میکند که عناصر e1 و e2 هر کدام بیش از 2 تعریف فضای نام ندارند. در این حالت، <e1> دارای 0 تعریف فضای نام و <e2> دارای 2 تعریف فضای نام است: xmlns="http://apigee.com" و xmlns:yahoo="http://yahoo.com" .
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <StructuralLimits>/<ChildCount>
حداکثر تعداد عناصر فرزند مجاز برای هر عنصر را مشخص میکند.
<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>
<Text> در قطعه کد سیاست زیر، تأیید میکند که مقادیر متن عنصر Learning XML ، Erik T. Ray, و 2003 هر کدام بیش از 15 کاراکتر نباشند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<Attribute>
محدودیت کاراکتر را برای هر مقدار ویژگی موجود در سند XML مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Attribute> در قطعه کد سیاست زیر، تأیید میکند که مقدار ویژگی WEB از 10 کاراکتر تجاوز نمیکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<NamespaceURI>
محدودیت کاراکتر را برای هر URI فضای نام موجود در سند XML مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<ns1:myelem xmlns:ns1="http://ns1.com"/>
<NamespaceURI> در قطعه کد سیاست زیر، تأیید میکند که مقدار فضای نام URI یعنی http://ns1.com از 10 کاراکتر تجاوز نمیکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<Comment>
محدودیت کاراکتر برای هر توضیحی که در سند XML وجود دارد را مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<book category="WEB"> <!-- This is a comment --> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Comment> در قطعه کد زیر، اعتبارسنجی میکند که متن نظر This is a comment از 10 کاراکتر تجاوز نکند. <ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| پیشفرض: | اگر محدودیتی مشخص نکنید، سیستم مقدار پیشفرض -1 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
عنصر <ValueLimits>/<ProcessingInstructionData>
محدودیت کاراکتری را برای هر متن دستورالعمل پردازش موجود در سند XML مشخص میکند.
برای مثال، XML زیر را در نظر بگیرید:
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<ProcessingInstructionData> در قطعه کد سیاست زیر، تأیید میکند که متن دستورالعمل پردازش 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 را اعمال میکند که سیستم آن را برابر با بدون محدودیت میداند. |
| حضور: | اختیاری |
| نوع: | عدد صحیح |
مرجع خطا
Content-Type هدر درخواست یا پاسخ روی application/xml.
این بخش کدهای خطا و پیامهای خطایی را که برگردانده میشوند و متغیرهای خطا را که توسط Edge تنظیم میشوند، هنگامی که این خطمشی خطا را راهاندازی میکند، توضیح میدهد. این اطلاعات برای دانستن اینکه آیا در حال توسعه قوانین خطا برای رسیدگی به خطاها هستید، مهم است. برای کسب اطلاعات بیشتر، آنچه را که باید در مورد خطاهای خط مشی و مدیریت خطاها بدانید را ببینید.
خطاهای زمان اجرا
این خطاها ممکن است هنگام اجرای سیاست رخ دهند.
| کد خطا | وضعیت HTTP | علت | رفع کنید |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed | 500 | خط مشی XMLThreatProtection می تواند انواع مختلفی از خطاهای ExecutionFailed را ایجاد کند. بیشتر این خطاها زمانی رخ میدهند که از یک آستانه مشخص در خطمشی تجاوز کند. این نوع خطاها عبارتند از: طول نام عنصر ، تعداد فرزند ، عمق گره ، تعداد ویژگی ، طول نام ویژگی و بسیاری دیگر. می توانید لیست کامل را در مبحث عیب یابی خطای زمان اجرا خط مشی XMLThreatProtection مشاهده کنید. | build |
steps.xmlthreatprotection.InvalidXMLPayload | 500 | اگر بار پیام ورودی مشخص شده توسط عنصر <Source> خط مشی XMLThreatProtection یک سند XML معتبر نباشد، این خطا رخ می دهد. | build |
steps.xmlthreatprotection.SourceUnavailable | 500 | این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> یکی از این موارد باشد:
| build |
steps.xmlthreatprotection.NonMessageVariable | 500 | این خطا در صورتی رخ می دهد که عنصر <Source> روی متغیری تنظیم شود که از نوع پیام نیست. | build |
یادداشت ها:
- نام خطا 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 |
نمونه پاسخ خطا
errorcode در پاسخ به خطا است. به متن موجود در faultstring تکیه نکنید، زیرا ممکن است تغییر کند. { "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 تماس بگیرند.
curl -u email:password -X POST -H "Content-type:application/xml" http://host:8080/v1/o/myorg -d \ "<Organization type="trial" name="MyOrganization"> <Environments/> <Properties> <Property name="features.isPolicyHttpStatusEnabled">true</Property> ... </Properties> </Organization>"