Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Ne?
XML güvenlik açıklarıyla ilgilenin ve API'nize yapılan saldırı sayısını en aza indirin. İsteğe bağlı olarak, yapılandırılan sınırlara göre XML yükü saldırılarını tespit edin. Aşağıdaki yaklaşımları kullanarak XML tehditlerine karşı koruma sağlayın:
- Mesajları XML şemasına göre doğrulama (
.xsd) - Hariç tutulacak belirli anahtar kelimeler veya kalıplar için mesaj içeriğini değerlendirin.
- Bozuk veya hatalı biçimlendirilmiş iletileri ayrıştırılmadan önce algılama
Öğe referansı
Öğe referansı, XMLThreatProtection politikasının öğelerini ve özelliklerini açıklar.
<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> özellikleri
<XMLThreatProtection async="false" continueOnError="false" enabled="true" name="XML-Threat-Protection-1">
Aşağıdaki tabloda tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:
| Özellik | Açıklama | Varsayılan | Varlık |
|---|---|---|---|
name |
Politikanın dahili adı. İsteğe bağlı olarak, politikayı |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmesi için Akış yürütmenin bir politikadan sonra bile devam etmesi için |
false | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
true | İsteğe bağlı |
async |
Bu özelliğin desteği sonlandırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğe
Politikayı name özelliğine ek olarak
farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.
<DisplayName>Policy Display Name</DisplayName>
| Varsayılan |
Yok Bu öğeyi çıkarırsanız politikanın |
|---|---|
| Varlık | İsteğe bağlı |
| Tür | Dize |
<NameLimits> öğesi
Politika tarafından kontrol edilecek ve uygulanacak karakter sınırlarını belirtir.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| Varsayılan: | Yok |
| Mevcut olma: | İsteğe bağlı |
| Tür: | Yok |
<NameLimits>/<Element> öğesi
XML belgesindeki herhangi bir öğe adında izin verilen maksimum karakter sayısıyla ilgili bir sınır belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
Yukarıdaki XML analiz edildiğinde, aşağıdaki politika snippet'indeki <Element> öğe değeri , öğe adlarının (book, title, author ve year)) 10 karakteri aşmadığını doğrular.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: | Tamsayı |
<NameLimits>/<Attribute> öğesi
XML belgesindeki herhangi bir özellik adında izin verilen maksimum karakter sayısıyla ilgili bir sınır belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
Yukarıdaki XML analiz edildiğinde, aşağıdaki politika snippet'indeki <Attribute> öğe değeri, category özellik adının 10 karakteri aşmadığını doğrular.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: | Tamsayı |
<NameLimits>/<NamespacePrefix> öğesi
XML belgesindeki ad alanı önekinde izin verilen maksimum karakter sayısıyla ilgili bir sınır belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<ns1:myelem xmlns:ns1="http://ns1.com"/>
Yukarıdaki XML analiz edildiğinde, aşağıdaki politika snippet'indeki <NamespacePrefix> öğe değeri, ns1 ad alanı önekinde 10 karakteri aşılmadığını doğrular.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: | Tamsayı |
<NameLimits>/<ProcessingInstructionTarget> öğesi
XML belgesindeki herhangi bir işleme talimatının hedefinde izin verilen maksimum karakter sayısıyla ilgili bir sınır belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
Yukarıdaki XML'yi analiz ederken aşağıdaki politika snippet'indeki <ProcessingInstructionTarget> öğe değeri, xml-stylesheet işlem talimatı hedefinin 10 karakteri aşmadığını doğrular.
<NameLimits> <Element>10</Element> <Attribute>10</Attribute> <NamespacePrefix>10</NamespacePrefix> <ProcessingInstructionTarget>10</ProcessingInstructionTarget> </NameLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: | Tamsayı |
<Source> öğesi
XML yükü saldırılarına karşı taranacak mesaj. Bu genellikle request olarak ayarlanır. Bunun nedeni, istemci uygulamalarından gelen istekleri genellikle doğrulamanız gerekmesidir.
message olarak ayarlandığında bu öğe, istek akışına eklendiğinde istek iletisini, yanıt akışına eklendiğinde ise yanıt iletisini otomatik olarak değerlendirir.
<Source>request</Source>
| Varsayılan: | istek |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Dize.
|
<StructuralLimits> öğesi
Politika tarafından kontrol edilecek ve uygulanacak yapısal sınırları belirtir.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| Varsayılan: | Yok |
| Mevcut olma: | İsteğe bağlı |
| Tür: | Yok |
<StructuralLimits>/<NodeDepth> öğesi
XML'de izin verilen maksimum düğüm derinliğini belirtir.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<StructuralLimits>/<AttributeCountPerElement> öğesi
Herhangi bir öğe için izin verilen maksimum özellik sayısını belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<AttributeCountPerElement> öğe değeri, book, title, author ve year öğelerinin her birinde 2'dan fazla özellik olmadığını doğrular.
Ad alanlarını tanımlamak için kullanılan özelliklerin sayılmadığını unutmayın.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<StructuralLimits>/<NameSpaceCountPerElement> öğesi
Herhangi bir öğe için izin verilen maksimum ad alanı tanımı sayısını belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<e1 attr1="val1" attr2="val2">
<e2 xmlns="http://apigee.com" xmlns:yahoo="http://yahoo.com" one="1" yahoo:two="2"/>
</e1>Yukarıdaki XML analiz edildiğinde, aşağıdaki politika snippet'indeki <NamespaceCountPerElement> öğe değeri, e1 ve e2 öğelerinin her birinde 2 ad alanı tanımından fazla olmadığını doğrular. Bu durumda, <e1> öğesinin 0 ad alanı tanımı, <e2> öğesinin ise 2 ad alanı tanımı vardır: xmlns="http://apigee.com" ve 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>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<StructuralLimits>/<ChildCount> öğesi
Herhangi bir öğe için izin verilen maksimum alt öğe sayısını belirtir.
<StructureLimits> <NodeDepth>5</NodeDepth> <AttributeCountPerElement>2</AttributeCountPerElement> <NamespaceCountPerElement>3</NamespaceCountPerElement> <ChildCount includeComment="true" includeElement="true" includeProcessingInstruction="true" includeText="true">3</ChildCount> </StructureLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
Özellikler
| Özellik | Varsayılan | Varlık |
|---|---|---|
| includeComment | doğru | İsteğe bağlı |
| includeElement | doğru | İsteğe bağlı |
| includeProcessingInstructions | doğru | İsteğe bağlı |
| includeText | doğru | İsteğe bağlı |
<ValueLimits> öğesi
Politika tarafından kontrol edilecek ve uygulanacak değerler için karakter sınırlarını belirtir.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| Varsayılan: | Yok |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Yok |
<ValueLimits>/<Text> öğesi
XML belgesinde bulunan tüm metin düğümleri için bir karakter sınırı belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Text> öğe değeri, Learning XML, Erik T.
Ray, ve 2003 öğe metin değerlerinin her birinin 15 karakteri aşmadığını doğrular.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<ValueLimits>/<Attribute> öğesi
XML belgesinde bulunan tüm özellik değerleri için bir karakter sınırı belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Attribute> öğe değeri, WEB özellik değerinin 10 karakteri aşmadığını doğrular.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<ValueLimits>/<NamespaceURI> öğesi
XML belgesinde bulunan ad alanı URI'leri için bir karakter sınırı belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<ns1:myelem xmlns:ns1="http://ns1.com"/>
<NamespaceURI> öğe değeri, ad alanı URI değeri http://ns1.com'nin 10 karakteri aşmadığını doğrular.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<ValueLimits>/<Comment> öğesi
XML belgesinde bulunan yorumlar için karakter sınırı belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<book category="WEB"> <!-- This is a comment --> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> </book>
<Comment> öğe değeri, yorum metni This is a comment'in 10 karakteri aşmadığını doğrular.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
<ValueLimits>/<ProcessingInstructionData> öğesi
XML belgesinde bulunan tüm işleme talimatı metinleri için bir karakter sınırı belirtir.
Örneğin, aşağıdaki XML'yi ele alalım:
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<ProcessingInstructionData> öğe değeri, işlem talimatı metninin type="text/xsl" href="style.xsl" 10 karakteri aşmadığını doğrular.
<ValueLimits> <Text>15</Text> <Attribute>10</Attribute> <NamespaceURI>10</NamespaceURI> <Comment>10</Comment> <ProcessingInstructionData>10</ProcessingInstructionData> </ValueLimits>
| Varsayılan: | Bir sınır belirtmezseniz sistem, -1 varsayılan değerini uygular. Bu değer, sistem tarafından sınırsız olarak kabul edilir. |
| Mevcut olma: | İsteğe bağlı |
| Tür: |
Tamsayı |
Hata referansı
Bu bölümde, bu politika bir hatayı tetiklediğinde döndürülen hata kodları ve hata mesajlarının yanı sıra Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Hata kuralları geliştirirken bu bilgilerin farkında olmanız önemlidir. hoşuma gitmesi için bir fırsattır. Daha fazla bilgi için Bilmeniz gerekenler Politika hataları ve Kullanım sorun.
Çalışma zamanı hataları
Bu hatalar, politika yürütüldüğünde ortaya çıkabilir.
| Hata kodu | HTTP durumu | Neden | Düzelt |
|---|---|---|---|
steps.xmlthreatprotection.ExecutionFailed |
500 | XMLThreatProtection politikası birçok farklı türde ExecutionFailed hatası verebilir. Bu hataların çoğu, politikada belirlenen belirli bir eşik aşıldığında ortaya çıkar. Bu Hata türleri şunlardır: öğe adı uzunluğu alt öğe sayısı, düğüm derinliği, özellik sayısı, özellik adı uzunluğu, ve çok daha fazlası. Tam listeyi XMLThreatProtection politikası çalışma zamanı hatası sorunlarını giderme konusunda bulabilirsiniz. | build |
steps.xmlthreatprotection.InvalidXMLPayload |
500 |
Bu hata, XMLThreatProtection politikasının <Source> öğesi tarafından belirtilen giriş mesajı yükü geçerli bir XML dokümanı değilse ortaya çıkar.
|
build |
steps.xmlthreatprotection.SourceUnavailable |
500 |
Bu hata, ileti
<Source> öğesinde belirtilen değişken aşağıdakilerden biri olabilir:
|
build |
steps.xmlthreatprotection.NonMessageVariable |
500 |
Bu hata, <Source> öğesi farklı bir değişkene ayarlanırsa
şu türde değil:
mesaj yazın.
|
build |
Notlar:
- Hata adı ExecutionFailed, varsayılan hata adıdır ve tespit edilen hatanın türü; ancak bu varsayılan değer kuruluş düzeyinde bir mülktür. Bu özellik ayarlandığında hata adı, orijinal hatası. Örneğin, "TextExceeded" veya "AttrValueExceeded" değerini alır. Aşağıdakiler için Kullanım Notları'na bakın: bolca fırsat sunuyor.
- 500 HTTP durumu varsayılandır; ancak HTTP Durumu, tüm URL'ler için akış hatalarını almak için bir istek oluşturun. Aşağıdakiler için Kullanım Notları'na bakın: bolca fırsat sunuyor.
Dağıtım hataları
Yok.
Hata değişkenleri
Bu değişkenler, çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Bilmeniz gerekenler hakkında daha fazla bilgi edinin.
| Değişkenler | Konum | Örnek |
|---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelendiği gibi hatanın adıdır. Hata adı, hata kodunun son kısmıdır. | fault.name Matches "SourceUnavailable" |
xmlattack.policy_name.failed |
policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. | xmlattack.XPT-SecureRequest.failed = true |
Örnek hata yanıtı
{ "fault": { "faultstring": "XMLThreatProtection[XPT-SecureRequest]: Execution failed. reason: XMLThreatProtection[XTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.xmlthreatprotection.ExecutionFailed" } } }
Örnek hata kuralı
<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>Şemalar
Kullanım notları
İnternet verilerini alan tüm sunucular, kötü amaçlı veya kasıtsız olarak saldırıya maruz kalabilir. Bazı saldırılar, arka uç sistemlerinin güvenliğini tehlikeye atma potansiyeli olan geçersiz belgeler oluşturarak XML'in esnekliğinden yararlanır. Bozuk veya son derece karmaşık XML belgeleri, sunucuların kullanılabilir olandan daha fazla bellek ayırmasına, CPU ve bellek kaynaklarının bağlanmasına, ayrıştırıcıların kilitlenmesine ve genel olarak ileti işlemeyi devre dışı bırakıp uygulama düzeyinde hizmet reddi saldırıları oluşturmasına neden olabilir.
Tehdide karşı koruma yapılandırma hatası
Bu politika için FaultRule'lar oluşturuyorsanız önemli bilgiler: Bir mesaj, JSON veya XML tehdit koruma politikasını geçemezse Edge varsayılan olarak HTTP 500 Dahili Sunucu Hatası durum kodu ve ExecutionFailed hata kodu oluşturur. Bu hata davranışını kuruluş düzeyinde yeni bir mülkle değiştirebilirsiniz. org
özelliği features.isPolicyHttpStatusEnabled true olarak ayarlandığında aşağıdaki
davranış gerçekleşir:
- İstek: Herhangi bir istek akışına tehdit koruma politikası eklenmişse geçersiz mesajlar, 400 Hatalı İstek durum kodu ve karşılık gelen bir politika hata kodu (yalnızca ExecutionFailed yerine) döndürür.
- Yanıt: Herhangi bir yanıt akışına tehdit koruma politikası eklenmişse geçersiz mesajlar yine 500 Dahili Sunucu Hatası durum kodunu döndürür ve yalnızca ExecutionFailed yerine ilgili politika hata kodlarından biri oluşturulur.
Cloud müşterileri, kuruluş özelliğini ayarlamak için Apigee Edge Destek Ekibi ile iletişime geçmelidir.