আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
কী
XML দুর্বলতাগুলো সমাধান করুন এবং আপনার API-এর উপর আক্রমণ হ্রাস করুন। ঐচ্ছিকভাবে, কনফিগার করা সীমার উপর ভিত্তি করে XML পেলোড আক্রমণ শনাক্ত করুন। নিম্নলিখিত পদ্ধতিগুলো ব্যবহার করে 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 | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে 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 এর একটি ডিফল্ট মান প্রয়োগ করে, যা সিস্টেমের মতে কোনো সীমা নেই। |
| উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | পূর্ণসংখ্যা |
<উৎস> উপাদান
এক্সএমএল পেলোড অ্যাটাকের জন্য মেসেজটি স্ক্রিন করা হবে। এটি সাধারণত 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> উপাদান
XML ডকুমেন্টে উপস্থিত যেকোনো নেমস্পেস URI-এর জন্য একটি অক্ষর সীমা নির্দিষ্ট করে।
উদাহরণস্বরূপ, নিম্নলিখিত 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 এর একটি ডিফল্ট মান প্রয়োগ করে, যা সিস্টেমের মতে কোনো সীমা নেই। |
| উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | পূর্ণসংখ্যা |
ত্রুটির রেফারেন্স
এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷
| ফল্ট কোড | HTTP স্থিতি | কারণ | ঠিক করুন |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed | 500 | XMLThreatProtection পলিসি বিভিন্ন ধরনের ExecutionFailed এরর নিক্ষেপ করতে পারে। এই ত্রুটিগুলির বেশিরভাগই ঘটে যখন নীতিতে সেট করা একটি নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করা হয়। এই ধরনের ত্রুটিগুলির মধ্যে রয়েছে: উপাদানের নামের দৈর্ঘ্য , চাইল্ড গণনা , নোডের গভীরতা , বৈশিষ্ট্য গণনা , বৈশিষ্ট্যের নামের দৈর্ঘ্য এবং আরও অনেক কিছু৷ আপনি XMLThreatProtection নীতি রানটাইম ত্রুটি সমস্যা সমাধানের বিষয়ে সম্পূর্ণ তালিকা দেখতে পারেন। | build |
steps.xmlthreatprotection.InvalidXMLPayload | 500 | XMLThreatProtection নীতির <Source> উপাদান দ্বারা নির্দিষ্ট করা ইনপুট বার্তা পেলোড একটি বৈধ 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 হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। | 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>স্কিমা
ব্যবহারের নির্দেশাবলী
যে কোনো সার্ভার যা অনলাইন ডেটা গ্রহণ করে, তা বিদ্বেষপূর্ণ বা অনিচ্ছাকৃত আক্রমণের শিকার হতে পারে। কিছু আক্রমণ XML-এর নমনীয়তার সুযোগ নিয়ে এমন ত্রুটিপূর্ণ ডকুমেন্ট তৈরি করে, যা ব্যাক-এন্ড সিস্টেমগুলোকে ঝুঁকিতে ফেলতে পারে। ত্রুটিপূর্ণ বা অত্যন্ত জটিল XML ডকুমেন্টের কারণে সার্ভার উপলব্ধ মেমরির চেয়ে বেশি মেমরি বরাদ্দ করতে পারে, যা সিপিইউ এবং মেমরি রিসোর্স আটকে রাখে, পার্সার ক্র্যাশ করে এবং সাধারণত মেসেজ প্রসেসিং অক্ষম করে দেয় ও অ্যাপ্লিকেশন-স্তরের ডিনায়াল-অফ-সার্ভিস আক্রমণের সৃষ্টি করে।
হুমকি সুরক্ষা ত্রুটি কনফিগারেশন
এই পলিসির জন্য ফল্টরুল (FaultRules) তৈরি করার ক্ষেত্রে গুরুত্বপূর্ণ তথ্য: ডিফল্টরূপে, যদি কোনো মেসেজ একটি JSON বা XML থ্রেট প্রোটেকশন পলিসি অতিক্রম করতে না পারে, তাহলে Edge একটি HTTP 500 ইন্টারনাল সার্ভার এরর স্ট্যাটাস কোড এবং একটি এক্সিকিউশনফেইলড (ExecutionFailed) এরর কোড থ্রো করে। আপনি একটি নতুন অর্গানাইজেশন-লেভেল প্রপার্টির মাধ্যমে এই এরর আচরণটি পরিবর্তন করতে পারেন। যখন org প্রপার্টি features.isPolicyHttpStatusEnabled true সেট করা হয়, তখন নিম্নলিখিত আচরণটি ঘটে:
- অনুরোধ: যেকোনো অনুরোধ প্রবাহের সাথে একটি হুমকি সুরক্ষা নীতি সংযুক্ত থাকলে, অবৈধ বার্তাগুলো শুধু 'ExecutionFailed' এর পরিবর্তে একটি 400 Bad Request স্ট্যাটাস কোড এবং এর সাথে একটি সংশ্লিষ্ট নীতি ত্রুটি কোড ফেরত দেয়।
- প্রতিক্রিয়া: যেকোনো রেসপন্স ফ্লো-এর সাথে একটি থ্রেট প্রোটেকশন পলিসি সংযুক্ত থাকলেও, অবৈধ মেসেজগুলো 500 Internal Server Error স্ট্যাটাস কোড ফেরত দেয় এবং সংশ্লিষ্ট পলিসি এরর কোডগুলোর মধ্যে একটি থ্রো করা হয় (শুধু ExecutionFailed-এর পরিবর্তে)।
অর্গানাইজেশন প্রপার্টি সেট করার জন্য ক্লাউড গ্রাহকদের অবশ্যই Apigee Edge Support-এর সাথে যোগাযোগ করতে হবে।
সম্পর্কিত বিষয়
নিয়মিত অভিব্যক্তি সুরক্ষা নীতি
, আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
কী
XML দুর্বলতাগুলো সমাধান করুন এবং আপনার API-এর উপর আক্রমণ হ্রাস করুন। ঐচ্ছিকভাবে, কনফিগার করা সীমার উপর ভিত্তি করে XML পেলোড আক্রমণ শনাক্ত করুন। নিম্নলিখিত পদ্ধতিগুলো ব্যবহার করে 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 | নীতির অভ্যন্তরীণ নাম। ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে | N/A | প্রয়োজন |
continueOnError | একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে | মিথ্যা | ঐচ্ছিক |
enabled | নীতি প্রয়োগ করতে নীতি বন্ধ করতে | সত্য | ঐচ্ছিক |
async | এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷ | মিথ্যা | অবচয় |
<DisplayName> উপাদান
ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে 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 এর একটি ডিফল্ট মান প্রয়োগ করে, যা সিস্টেমের মতে কোনো সীমা নেই। |
| উপস্থিতি: | ঐচ্ছিক |
| প্রকার: | পূর্ণসংখ্যা |
<উৎস> উপাদান
এক্সএমএল পেলোড অ্যাটাকের জন্য মেসেজটি স্ক্রিন করা হবে। এটি সাধারণত 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> উপাদান
XML ডকুমেন্টে উপস্থিত যেকোনো নেমস্পেস URI-এর জন্য একটি অক্ষর সীমা নির্দিষ্ট করে।
উদাহরণস্বরূপ, নিম্নলিখিত 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.
এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷
রানটাইম ত্রুটি
নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷
| ফল্ট কোড | HTTP স্থিতি | কারণ | ঠিক করুন |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed | 500 | XMLThreatProtection পলিসি বিভিন্ন ধরনের ExecutionFailed এরর নিক্ষেপ করতে পারে। এই ত্রুটিগুলির বেশিরভাগই ঘটে যখন নীতিতে সেট করা একটি নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করা হয়। এই ধরনের ত্রুটিগুলির মধ্যে রয়েছে: উপাদানের নামের দৈর্ঘ্য , চাইল্ড গণনা , নোডের গভীরতা , বৈশিষ্ট্য গণনা , বৈশিষ্ট্যের নামের দৈর্ঘ্য এবং আরও অনেক কিছু৷ আপনি XMLThreatProtection নীতি রানটাইম ত্রুটি সমস্যা সমাধানের বিষয়ে সম্পূর্ণ তালিকা দেখতে পারেন। | build |
steps.xmlthreatprotection.InvalidXMLPayload | 500 | XMLThreatProtection নীতির <Source> উপাদান দ্বারা নির্দিষ্ট করা ইনপুট বার্তা পেলোড একটি বৈধ 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 হল ফল্টের নাম, যা উপরে রানটাইম ত্রুটির সারণীতে তালিকাভুক্ত করা হয়েছে। ফল্ট নামটি ফল্ট কোডের শেষ অংশ। | 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>স্কিমা
ব্যবহারের নির্দেশাবলী
যে কোনো সার্ভার যা অনলাইন ডেটা গ্রহণ করে, তা বিদ্বেষপূর্ণ বা অনিচ্ছাকৃত আক্রমণের শিকার হতে পারে। কিছু আক্রমণ XML-এর নমনীয়তার সুযোগ নিয়ে এমন ত্রুটিপূর্ণ ডকুমেন্ট তৈরি করে, যা ব্যাক-এন্ড সিস্টেমগুলোকে ঝুঁকিতে ফেলতে পারে। ত্রুটিপূর্ণ বা অত্যন্ত জটিল XML ডকুমেন্টের কারণে সার্ভার উপলব্ধ মেমরির চেয়ে বেশি মেমরি বরাদ্দ করতে পারে, যা সিপিইউ এবং মেমরি রিসোর্স আটকে রাখে, পার্সার ক্র্যাশ করে এবং সাধারণত মেসেজ প্রসেসিং অক্ষম করে দেয় ও অ্যাপ্লিকেশন-স্তরের ডিনায়াল-অফ-সার্ভিস আক্রমণের সৃষ্টি করে।
হুমকি সুরক্ষা ত্রুটি কনফিগারেশন
এই পলিসির জন্য ফল্টরুল (FaultRules) তৈরি করার ক্ষেত্রে গুরুত্বপূর্ণ তথ্য: ডিফল্টরূপে, যদি কোনো মেসেজ একটি JSON বা XML থ্রেট প্রোটেকশন পলিসি অতিক্রম করতে না পারে, তাহলে Edge একটি HTTP 500 ইন্টারনাল সার্ভার এরর স্ট্যাটাস কোড এবং একটি এক্সিকিউশনফেইলড (ExecutionFailed) এরর কোড থ্রো করে। আপনি একটি নতুন অর্গানাইজেশন-লেভেল প্রপার্টির মাধ্যমে এই এরর আচরণটি পরিবর্তন করতে পারেন। যখন org প্রপার্টি features.isPolicyHttpStatusEnabled true সেট করা হয়, তখন নিম্নলিখিত আচরণটি ঘটে:
- অনুরোধ: যেকোনো অনুরোধ প্রবাহের সাথে একটি হুমকি সুরক্ষা নীতি সংযুক্ত থাকলে, অবৈধ বার্তাগুলো শুধু 'ExecutionFailed' এর পরিবর্তে একটি 400 Bad Request স্ট্যাটাস কোড এবং এর সাথে একটি সংশ্লিষ্ট নীতি ত্রুটি কোড ফেরত দেয়।
- প্রতিক্রিয়া: যেকোনো রেসপন্স ফ্লো-এর সাথে একটি থ্রেট প্রোটেকশন পলিসি সংযুক্ত থাকলেও, অবৈধ মেসেজগুলো 500 Internal Server Error স্ট্যাটাস কোড ফেরত দেয় এবং সংশ্লিষ্ট পলিসি এরর কোডগুলোর মধ্যে একটি থ্রো করা হয় (শুধু ExecutionFailed-এর পরিবর্তে)।
অর্গানাইজেশন প্রপার্টি সেট করার জন্য ক্লাউড গ্রাহকদের অবশ্যই Apigee Edge Support-এর সাথে যোগাযোগ করতে হবে।
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>"