আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
কী
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 বিশ্লেষণ করার সময়, নিচে দেওয়া policy
স্নিপেটের <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-এর একটি ডিফল্ট ভ্যালু প্রয়োগ করে,
যেটিকে সিস্টেম কোনও সীমা না থাকার সমান হিসেবে ধরে নেয়। |
| উপস্থিতি: | ঐচ্ছিক |
| টাইপ: | পূর্ণসংখ্যা |
<Source> এলিমেন্ট
XML পেলোড অ্যাটাকের জন্য মেসেজ স্ক্রিন করা হবে। এটি সাধারণত
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>-এর নেমস্পেস সংজ্ঞা ০ এবং
<e2>-এর নেমস্পেস সংজ্ঞা ২: 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-এর একটি ডিফল্ট ভ্যালু প্রয়োগ করে,
যেটিকে সিস্টেম কোনও সীমা না থাকার সমান হিসেবে ধরে নেয়। |
| উপস্থিতি: | ঐচ্ছিক |
| টাইপ: |
পূর্ণসংখ্যা |
অ্যাট্রিবিউট
| অ্যাট্রিবিউট | ডিফল্ট | উপস্থিতি |
|---|---|---|
| includeComment | সত্য | ঐচ্ছিক |
| includeElement | সত্য | ঐচ্ছিক |
| includeProcessingInstructions | সত্য | ঐচ্ছিক |
| includeText | সত্য | ঐচ্ছিক |
<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-এর একটি ডিফল্ট ভ্যালু প্রয়োগ করে,
যেটিকে সিস্টেম কোনও সীমা না থাকার সমান হিসেবে ধরে নেয়। |
| উপস্থিতি: | ঐচ্ছিক |
| টাইপ: |
পূর্ণসংখ্যা |
সমস্যার রেফারেন্স
এই নীতি কোনও সমস্যার কারণে ট্রিগার হলে, Edge-এর মাধ্যমে ফেরত আসা ফল্ট কোড ও সমস্যার মেসেজ এবং সেট করা ফল্ট ভেরিয়েবল সম্পর্কে এই বিভাগে বর্ণনা করা হয়েছে। সমস্যা সমাধানের জন্য আপনি যদি ফল্ট রুল ডেভেলপ করেন, তাহলে এই তথ্য জানা আপনার জন্য গুরুত্বপূর্ণ। আরও জানতে, নীতি সংক্রান্ত সমস্যা সম্পর্কে আপনার যা জানা প্রয়োজন এবং ত্রুটি মোকাবেলা করা দেখুন।
রানটাইম সমস্যা
নীতি এক্সিকিউট করার সময় এই সমস্যা হতে পারে।
| সমস্যার কোড | HTTP স্ট্যাটাস | কারণ | এর সমাধান করুন |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | XMLThreatProtection নীতি অনেক ধরনের ExecutionFailed সমস্যা দেখাতে পারে। নীতিতে সেট করা নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করলে এই ধরনের বেশিরভাগ সমস্যা হয়। এইসব ধরনের সমস্যার মধ্যে অন্তর্ভুক্ত হল: এলিমেন্টের নামের দৈর্ঘ্য, চাইল্ড কাউন্ট, নোড ডেপথ, অ্যাট্রিবিউট কাউন্ট, অ্যাট্রিবিউটের নামের দৈর্ঘ্য, এবং আরও অনেক কিছু। আপনি XMLThreatProtection নীতি রানটাইম সংক্রান্ত সমস্যার সমাধান টপিকে সম্পূর্ণ তালিকা দেখতে পাবেন। | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
XMLThreatProtection নীতির <Source> এলিমেন্টে নির্দিষ্ট করা ইনপুট মেসেজ পেলোড সঠিক XML ডকুমেন্ট না হলে এই সমস্যা হয়।
|
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
message
ভেরিয়েবলটি <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 ডকুমেন্ট উপলভ্য মেমরির চেয়ে বেশি মেমরি সার্ভারকে বরাদ্দ করতে বাধ্য করতে পারে, এর ফলে CPU ও মেমরি রিসোর্স ব্যস্ত হয়ে পড়ে, পার্সার ক্র্যাশ করে এবং সাধারণভাবে মেসেজ প্রসেসিং বন্ধ হয়ে যায় এবং অ্যাপ্লিকেশন-লেভেল ডেনি-অফ-সার্ভিস অ্যাটাক তৈরি হয়।
ঝুঁকি প্রতিরোধ সংক্রান্ত সমস্যা কনফিগারেশন
এই নীতির জন্য FaultRules তৈরি করলে গুরুত্বপূর্ণ তথ্য: কোনও মেসেজ JSON বা XML থ্রেট প্রোটেকশন নীতি অতিক্রম করতে না পারলে, Edge ডিফল্ট হিসেবে HTTP 500 ইন্টার্নাল সার্ভার এরর স্ট্যাটাস কোড এবং ExecutionFailed এরর
কোড দেখায়।
নতুন প্রতিষ্ঠানের লেভেল প্রপার্টির মাধ্যমে
আপনি সেই সমস্যার আচরণ পরিবর্তন করতে পারবেন। org
প্রপার্টি features.isPolicyHttpStatusEnabled-কে true হিসেবে সেট করলে, নিম্নলিখিত
আচরণ দেখা যায়:
- অনুরোধ: কোনও অনুরোধ ফ্লোতে থ্রেট প্রোটেকশন নীতি অ্যাটাচ করা থাকলে, ভুল মেসেজ একটি সংশ্লিষ্ট নীতি সংক্রান্ত সমস্যার কোড (শুধু ExecutionFailed নয়) সহ একটি 400 ভুল অনুরোধ স্ট্যাটাস কোড রিটার্ন করে।
- উত্তর: কোনও উত্তর ফ্লোতে থ্রেট প্রোটেকশন নীতি অ্যাটাচ করা থাকলে, ভুল মেসেজ এখনও 500 ইন্টার্নাল সার্ভার এরর স্ট্যাটাস কোড রিটার্ন করে এবং সংশ্লিষ্ট নীতি সংক্রান্ত সমস্যার কোডগুলির মধ্যে একটি কোড দেখানো হয় (শুধু ExecutionFailed নয়)।
ক্লাউড গ্রাহকদের অবশ্যই Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করে সংস্থা সংক্রান্ত প্রপার্টি সেট করতে হবে।