आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं. जानकारी
क्या
एक्सएमएल की कमियों को ठीक करें और अपने एपीआई पर होने वाले हमलों को कम करें. कॉन्फ़िगर की गई सीमाओं के आधार पर, एक्सएमएल पेलोड के हमलों का पता लगाएं. हालांकि, यह ज़रूरी नहीं है. एक्सएमएल से जुड़े खतरों से बचने के लिए, इन तरीकों का इस्तेमाल करें:
- एक्सएमएल स्कीमा (
.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 |
नीति का अंदरूनी नाम. इसके अलावा, नीति को लेबल करने के लिए, |
लागू नहीं | ज़रूरी है |
continueOnError |
किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे |
गलत | वैकल्पिक |
enabled |
नीति को लागू करने के लिए, नीति को बंद करने के लिए, |
सही | वैकल्पिक |
async |
यह एट्रिब्यूट अब काम नहीं करता. |
गलत | बहिष्कृत |
<DisplayName> एलिमेंट
इस कॉलम में नीति को लेबल करने के लिए, name एट्रिब्यूट के साथ-साथ इस्तेमाल करें
मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर, जिसका नाम अलग और सामान्य भाषा में है.
<DisplayName>Policy Display Name</DisplayName>
| डिफ़ॉल्ट |
लागू नहीं अगर आप इस एलिमेंट को छोड़ देते हैं, तो नीति की |
|---|---|
| मौजूदगी | वैकल्पिक |
| टाइप | स्ट्रिंग |
<NameLimits> एलिमेंट
इससे वर्णों की उन सीमाओं के बारे में पता चलता है जिनकी जांच नीति के तहत की जानी है और जिन्हें लागू किया जाना है.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| डिफ़ॉल्ट: | लागू नहीं |
| मौजूदगी: | वैकल्पिक |
| टाइप: | लागू नहीं |
<NameLimits>/<Element> element
यह XML दस्तावेज़ में किसी भी एलिमेंट के नाम में इस्तेमाल किए जा सकने वाले वर्णों की ज़्यादा से ज़्यादा संख्या तय करता है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
ऊपर दिए गए एक्सएमएल का विश्लेषण करने पर, नीति के इस स्निपेट में मौजूद <Element> एलिमेंट की वैल्यू से यह पुष्टि होगी कि एलिमेंट के नाम (book , title, author, और year)) में 10 से ज़्यादा वर्ण नहीं हैं.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| डिफ़ॉल्ट: | अगर आपने कोई सीमा तय नहीं की है, तो सिस्टम -1 की डिफ़ॉल्ट वैल्यू लागू करता है. इसका मतलब है कि कोई सीमा नहीं है. |
| मौजूदगी: | वैकल्पिक |
| टाइप: | पूर्णांक |
<NameLimits>/<Attribute> एलिमेंट
यह एक्सएमएल दस्तावेज़ में मौजूद किसी भी एट्रिब्यूट के नाम में इस्तेमाल किए जा सकने वाले वर्णों की ज़्यादा से ज़्यादा संख्या तय करता है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
ऊपर दिए गए एक्सएमएल का विश्लेषण करने पर, नीचे दिए गए नीति के स्निपेट में मौजूद <Attribute> एलिमेंट की वैल्यू से यह पुष्टि होगी कि एट्रिब्यूट का नाम category, 10 वर्णों से ज़्यादा नहीं है.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| डिफ़ॉल्ट: | अगर आपने कोई सीमा तय नहीं की है, तो सिस्टम -1 की डिफ़ॉल्ट वैल्यू लागू करता है. इसका मतलब है कि कोई सीमा नहीं है. |
| मौजूदगी: | वैकल्पिक |
| टाइप: | पूर्णांक |
<NameLimits>/<NamespacePrefix> एलिमेंट
यह विकल्प, XML दस्तावेज़ में नेमस्पेस प्रीफ़िक्स में इस्तेमाल किए जा सकने वाले वर्णों की ज़्यादा से ज़्यादा संख्या तय करता है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<ns1:myelem xmlns:ns1="http://ns1.com"/>
ऊपर दिए गए एक्सएमएल का विश्लेषण करने पर, नीचे दिए गए नीति के स्निपेट में मौजूद <NamespacePrefix> एलिमेंट की वैल्यू से यह पुष्टि होगी कि नेमस्पेस प्रीफ़िक्स ns1 में 10 से ज़्यादा वर्ण नहीं हैं.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| डिफ़ॉल्ट: | अगर आपने कोई सीमा तय नहीं की है, तो सिस्टम -1 की डिफ़ॉल्ट वैल्यू लागू करता है. इसका मतलब है कि कोई सीमा नहीं है. |
| मौजूदगी: | वैकल्पिक |
| टाइप: | पूर्णांक |
<NameLimits>/<ProcessingInstructionTarget> एलिमेंट
इस विकल्प से, XML दस्तावेज़ में मौजूद किसी भी प्रोसेसिंग निर्देश के टारगेट में इस्तेमाल किए जा सकने वाले वर्णों की ज़्यादा से ज़्यादा संख्या तय की जाती है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
ऊपर दिए गए एक्सएमएल का विश्लेषण करने पर, नीचे दिए गए नीति के स्निपेट में मौजूद <ProcessingInstructionTarget> एलिमेंट की वैल्यू से यह पुष्टि होगी कि प्रोसेसिंग के निर्देश का टारगेट xml-stylesheet, 10 वर्णों से ज़्यादा नहीं है.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| डिफ़ॉल्ट: | अगर आपने कोई सीमा तय नहीं की है, तो सिस्टम -1 की डिफ़ॉल्ट वैल्यू लागू करता है. इसका मतलब है कि कोई सीमा नहीं है. |
| मौजूदगी: | वैकल्पिक |
| टाइप: | पूर्णांक |
<Source> एलिमेंट
एक्सएमएल पेलोड के हमलों से बचाने के लिए, मैसेज की जांच की जाएगी. आम तौर पर, इसे request पर सेट किया जाता है, क्योंकि आपको क्लाइंट ऐप्लिकेशन से आने वाले अनुरोधों की पुष्टि करनी होगी.
message पर सेट होने पर, यह एलिमेंट अनुरोध फ़्लो से अटैच होने पर अनुरोध मैसेज और जवाब फ़्लो से अटैच होने पर जवाब मैसेज का आकलन अपने-आप करेगा.
<Source>request</Source>
| डिफ़ॉल्ट: | CANNOT TRANSLATE |
| मौजूदगी: | वैकल्पिक |
| टाइप: |
स्ट्रिंग.
|
<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> एलिमेंट
इससे यह पता चलता है कि किसी एलिमेंट के लिए, ज़्यादा से ज़्यादा कितने एट्रिब्यूट इस्तेमाल किए जा सकते हैं.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<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> एलिमेंट
इससे यह पता चलता है कि किसी भी एलिमेंट के लिए, नेमस्पेस की ज़्यादा से ज़्यादा कितनी डेफ़िनिशन इस्तेमाल की जा सकती हैं.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<e1 attr1="val1" attr2="val2">
<e2 xmlns="http://apigee.com" xmlns:yahoo="http://yahoo.com" one="1" yahoo:two="2"/>
</e1>ऊपर दिए गए एक्सएमएल का विश्लेषण करने पर, नीचे दिए गए नीति के स्निपेट में मौजूद <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> element
इससे यह पता चलता है कि किसी एलिमेंट के लिए, ज़्यादा से ज़्यादा कितने चाइल्ड एलिमेंट इस्तेमाल किए जा सकते हैं.
<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> एलिमेंट
इस विकल्प का इस्तेमाल करके, एक्सएमएल दस्तावेज़ में मौजूद किसी भी टेक्स्ट नोड के लिए वर्ण सीमा तय की जाती है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<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> एलिमेंट
यह एक्सएमएल दस्तावेज़ में मौजूद किसी भी एट्रिब्यूट की वैल्यू के लिए वर्णों की सीमा तय करता है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<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> एलिमेंट
इस विकल्प से, एक्सएमएल दस्तावेज़ में मौजूद किसी भी नेमस्पेस यूआरआई के लिए वर्ण सीमा तय की जाती है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<ns1:myelem xmlns:ns1="http://ns1.com"/>
<NamespaceURI> एलिमेंट की वैल्यू से यह पुष्टि होगी कि नेमस्पेस यूआरआई की वैल्यू http://ns1.com में 10 से ज़्यादा वर्ण नहीं हैं.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| डिफ़ॉल्ट: | अगर आपने कोई सीमा तय नहीं की है, तो सिस्टम -1 की डिफ़ॉल्ट वैल्यू लागू करता है. इसका मतलब है कि कोई सीमा नहीं है. |
| मौजूदगी: | वैकल्पिक |
| टाइप: |
पूर्णांक |
<ValueLimits>/<Comment> एलिमेंट
इस एट्रिब्यूट का इस्तेमाल करके, एक्सएमएल दस्तावेज़ में मौजूद किसी भी टिप्पणी के लिए वर्णों की सीमा तय की जाती है.
उदाहरण के लिए, यहां दिया गया एक्सएमएल देखें:
<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-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 की मदद से सेट किए जाते हैं. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करता है. ज़्यादा जानने के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों और हैंडलिंग के बारे में जानकारी गलतियां.
रनटाइम की गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
| गड़बड़ी कोड | एचटीटीपी कोड स्थिति | वजह | ठीक करें |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | XMLImageProtection नीति की वजह से, कई अलग-अलग तरह की जन्मदिन की गड़बड़ियां मिल सकती हैं. इस तरह की ज़्यादातर गड़बड़ियां तब होती हैं, जब नीति में सेट किया गया कोई थ्रेशोल्ड पार हो जाता है. ये इस तरह की गड़बड़ियां हो सकती हैं: एलिमेंट के नाम की लंबाई, बच्चों की संख्या, नोड की गहराई, एट्रिब्यूट की संख्या, एट्रिब्यूट के नाम की लंबाई, और कई अन्य. इस विषय में, पूरी सूची देखी जा सकती है. इस सूची में, XML प्रॉपर्टीके लिए सुरक्षा से जुड़ी नीति के रनटाइम से जुड़ी गड़बड़ी का हल करने के बारे में जानकारी दी गई है. | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
यह गड़बड़ी तब होती है, जब एक्सएमएल खतरे को सुरक्षित रखने की नीति के <Source> एलिमेंट से तय किया गया इनपुट मैसेज पेलोड मान्य एक्सएमएल दस्तावेज़ नहीं है.
|
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
यह गड़बड़ी तब होती है, जब मैसेज
<Source> एलिमेंट में दिया गया वैरिएबल या तो:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
यह गड़बड़ी तब होती है, जब <Source> एलिमेंट किसी ऐसे वैरिएबल पर सेट होता है जो
का प्रकार नहीं है
मैसेज.
|
build |
ध्यान दें:
- गड़बड़ी का नाम ज़रूरत के हिसाब से, गड़बड़ी का डिफ़ॉल्ट नाम होता है और इसे दिए गए सभी विकल्पों पर निर्भर नहीं किया जाता किस तरह की गड़बड़ी का पता चला है; हालांकि, इस डिफ़ॉल्ट सेटिंग को संगठन-लेवल की प्रॉपर्टी. जब यह प्रॉपर्टी सेट हो जाती है, तो गड़बड़ी का नाम असली गड़बड़ी. उदाहरण के लिए, "TextExceeded" या "AttrValueExeded" है. इनके लिए इस्तेमाल से जुड़े नोट देखें विवरण.
- डिफ़ॉल्ट रूप से, 500 एचटीटीपी स्टेटस होता है; हालांकि, एचटीटीपी स्टेटस को 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>स्कीमा
इस्तेमाल की जानकारी
ऑनलाइन डेटा पाने वाले किसी भी सर्वर पर हमला हो सकता है. यह हमला जान-बूझकर या अनजाने में किया जा सकता है. कुछ हमले, एक्सएमएल की सुविधा का फ़ायदा उठाते हैं. इसके लिए, वे ऐसे अमान्य दस्तावेज़ बनाते हैं जिनसे बैक-एंड सिस्टम को नुकसान पहुंच सकता है. खराब या बहुत ज़्यादा जटिल एक्सएमएल दस्तावेज़ों की वजह से, सर्वर उपलब्ध मेमोरी से ज़्यादा मेमोरी इस्तेमाल कर सकते हैं. इससे सीपीयू और मेमोरी के संसाधन सीमित हो जाते हैं, पार्सर क्रैश हो जाते हैं, और आम तौर पर मैसेज प्रोसेस करने की सुविधा बंद हो जाती है. साथ ही, ऐप्लिकेशन लेवल पर सेवा से इनकार करने वाले हमले हो सकते हैं.
खतरों से सुरक्षा की सुविधा के कॉन्फ़िगरेशन में गड़बड़ी
अगर आपको इस नीति के लिए FaultRules बनानी हैं, तो यह अहम जानकारी पढ़ें: अगर कोई मैसेज, JSON या XML थ्रेट प्रोटेक्शन नीति का पालन नहीं करता है, तो Edge डिफ़ॉल्ट रूप से एचटीटीपी 500 इंटरनल सर्वर एरर स्टेटस कोड और ExecutionFailed गड़बड़ी कोड दिखाता है. संगठन-लेवल की नई प्रॉपर्टी की मदद से, गड़बड़ी की इस स्थिति को बदला जा सकता है. org प्रॉपर्टी features.isPolicyHttpStatusEnabled को सही के तौर पर सेट करने पर, ये काम होते हैं:
- अनुरोध: किसी भी अनुरोध फ़्लो से जुड़ी थ्रेट प्रोटेक्शन की नीति के तहत, अमान्य मैसेज के लिए 400 Bad Request स्टेटस कोड मिलता है. साथ ही, नीति से जुड़ी गड़बड़ी का कोड (सिर्फ़ ExecutionFailed के बजाय) भी मिलता है.
- जवाब: अगर किसी जवाब के फ़्लो में थ्रेट प्रोटेक्शन की नीति अटैच की गई है, तो अमान्य मैसेज अब भी 500 इंटरनल सर्वर की गड़बड़ी वाला स्टेटस कोड दिखाएंगे. साथ ही, नीति से जुड़ी गड़बड़ी के कोड में से कोई एक कोड दिखेगा. सिर्फ़ ExecutionFailed नहीं दिखेगा.
Cloud ग्राहकों को संगठन की प्रॉपर्टी सेट करने के लिए, Apigee Edge की सहायता टीम से संपर्क करना होगा.