Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Ne?
Çeşitli kontroller için sınırlar belirlemenizi sağlayarak içerik düzeyinde saldırıların ortaya çıkardığı riski en aza indirir. Diziler ve dizeler gibi JSON yapıları.
Video: JSONThreatProtection politikası, içerik düzeyinde saldırılara karşı API'leri güvenli hale getirmenizi sağlar.
Video: Apigee bulutlar arası API platformuyla ilgili bu kısa videoya göz atın.
Öğe referansı
Öğe referansı, JSONThreatProtection öğelerini ve özelliklerini açıklar politikası.
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-Threat-Protection-1"> <DisplayName>JSONThreatProtection 1</DisplayName> <ArrayElementCount>20</ArrayElementCount> <ContainerDepth>10</ContainerDepth> <ObjectEntryCount>15</ObjectEntryCount> <ObjectEntryNameLength>50</ObjectEntryNameLength> <Source>request</Source> <StringValueLength>500</StringValueLength> </JSONThreatProtection>
<JSONThreatProtection> özellikler
<JSONThreatProtection async="false" continueOnError="false" enabled="true" name="JSON-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 |
<ArrayElementCount> öğe
Bir dizide izin verilen maksimum öğe sayısını belirtir.
<ArrayElementCount>20</ArrayElementCount>
Varsayılan: | Bu öğeyi belirtmezseniz veya negatif bir tam sayı belirtirseniz sistem bir sınır uygulamaz. |
Bulunma: | İsteğe bağlı |
Tür: | Tamsayı |
<ContainerDepth> öğe
İzin verilen maksimum kapsama derinliğini belirtir. Burada kapsayıcılar, nesne veya dizidir. Örneğin, nesne içeren bir nesne içeren bir dizi, derinliği 3'tür.
<ContainerDepth>10</ContainerDepth>
Varsayılan: | Bu öğeyi belirtmezseniz veya negatif bir tam sayı belirtirseniz sistem herhangi bir sınır uygulamaz. |
Bulunma: | İsteğe bağlı |
Tür: | Tamsayı |
<ObjectEntryCount> öğe
Bir nesnede izin verilen maksimum giriş sayısını belirtir.
<ObjectEntryCount>15</ObjectEntryCount>
Varsayılan: | Bu öğeyi belirtmezseniz veya negatif bir tam sayı belirtirseniz sistem herhangi bir sınır uygulamaz. |
Bulunma: | İsteğe bağlı |
Tür: | Tamsayı |
<ObjectEntryNameLength> öğe
Bir nesne içindeki özellik adı için izin verilen maksimum dize uzunluğunu belirtir.
<ObjectEntryNameLength>50</ObjectEntryNameLength>
Varsayılan: | Bu öğeyi belirtmezseniz veya negatif bir tam sayı belirtirseniz sistem bir sınır uygulamaz. |
Bulunma: | İsteğe bağlı |
Tür: | Tamsayı |
<Source> öğe
JSON yük saldırılarına karşı denetlenecek mesaj. Bu ayar genellikle şu şekilde ayarlanır:
request
.
Bu öğe, message
olarak ayarlandığında istek mesajını otomatik olarak değerlendirir
istek akışına eklendiğinde ve yanıta eklendiğinde yanıt mesajına eklendiğinde
akışı sağlar.
<Source>request</Source>
Varsayılan: | istek |
Bulunma: | İsteğe bağlı |
Tür: |
Dize. Geçerli değerler: istek, yanıt veya mesaj. |
<StringValueLength> öğe
Bir dize değeri için izin verilen maksimum uzunluğu belirtir.
<StringValueLength>500</StringValueLength>
Varsayılan: | Bu öğeyi belirtmezseniz veya negatif bir tam sayı belirtirseniz sistem bir sınır uygulamaz. |
Bulunma: | İ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.jsonthreatprotection.ExecutionFailed |
500 | JSONThreatProtection 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: nesne giriş adı uzunluğu, nesne giriş sayısı ise dizi öğesi sayısı container derinliği, dize dizesi değeri uzunluğu. Bu hata, yük geçersiz JSON nesnesi içerdiğinde de ortaya çıkar. | build |
steps.jsonthreatprotection.SourceUnavailable |
500 |
Bu hata, ileti
<Source> öğesinde belirtilen değişken aşağıdakilerden biri olabilir:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 |
Bu hata, <Source> öğesi farklı bir değişkene ayarlanırsa
şu türde değil:
mesaj yazın.
|
build |
Dağıtım hataları
Yok.
Hata değişkenleri
Bu değişkenler, politika bir hatayı tetiklediğinde 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" |
jsonattack.policy_name.failed |
policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. | jsonattack.JTP-SecureRequest.failed = true |
Örnek hata yanıtı
{ "fault": { "faultstring": "JSONThreatProtection[JPT-SecureRequest]: Execution failed. reason: JSONThreatProtection[JTP-SecureRequest]: Exceeded object entry name length at line 2", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Örnek hata kuralı
<FaultRule name="JSONThreatProtection Policy Faults">
<Step>
<Name>AM-CustomErrorResponse</Name>
<Condition>(fault.name Matches "ExecutionFailed") </Condition>
</Step>
<Condition>(jsonattack.JPT-SecureRequest.failed = true) </Condition>
</FaultRule>
Şemalar
Kullanım notları
XML tabanlı hizmetler gibi, JavaScript nesne notasyonunu (JSON) destekleyen API'ler de tespit edebiliyorlar. Basit JSON saldırıları, JSON ayrıştırıcıları aşırı derecede zorlayan yapıları kullanmaya çalışır. bir hizmeti çökerterek uygulama düzeyinde hizmet reddi saldırılarına neden olabilir. Tüm ayarlar isteğe bağlıdır ve hizmet gereksinimlerinizi potansiyel risklere karşı optimize edecek şekilde güvenlik açıkları.