Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Ne
Diziler ve dizeler gibi çeşitli JSON yapılarında sınırlar belirtmenize olanak tanıyarak içerik düzeyindeki saldırıların oluşturduğu riski en aza indirir.
Video: JSONThreatProtection politikasının içerik düzeyindeki saldırılara karşı API'lerin güvenliğini nasıl sağlayabileceğiniz hakkında daha fazla bilgi edinmek için kısa bir video izleyin.
Video: Apigee çapraz bulut API platformuyla ilgili bu kısa videoya göz atın.
Öğe referansı
Öğe referansı, JSONThreatProtection politikasının öğelerini ve özelliklerini açıklar.
<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> özellikleri
<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ı yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için |
Yok | Gerekli |
continueOnError |
Bir politika başarısız olduğunda hata döndürülmesi için Bir politika başarısız olduktan sonra bile akış yürütülmesinin 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 özellik kullanımdan kaldırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğesi
Politikayı, yönetim kullanıcı arayüzü proxy düzenleyicisinde farklı bir doğal dil adıyla etiketlemek için name
özelliğine ek olarak kullanın.
<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> öğesi
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 herhangi bir sınır uygulamaz. |
Bulunma: | İsteğe bağlı |
Tür: | Tamsayı |
<ContainerDepth> öğesi
Kapsayıcıların nesne veya dizi olduğu, izin verilen maksimum koruma derinliğini belirtir. Örneğin, nesne içeren bir nesne içeren bir dizi, 3'lük koruma derinliğiyle sonuçlanı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> öğesi
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> öğesi
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 herhangi bir sınır uygulamaz. |
Bulunma: | İsteğe bağlı |
Tür: | Tamsayı |
<Source> öğesi
JSON yük saldırılarına karşı denetlenecek mesaj. İstemci uygulamalarından gelen istekleri doğrulamanız gerektiği için bu genellikle request
olarak ayarlanır.
message
olarak ayarlandığında bu öğe, istek akışına eklendiğinde istek mesajını ve yanıt akışına eklendiğinde yanıt mesajını otomatik olarak değerlendirir.
<Source>request</Source>
Varsayılan: | istek |
Bulunma: | İsteğe bağlı |
Tür: |
Dize. Geçerli değerler: istek, yanıt veya mesaj. |
<StringValueLength> öğesi
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 herhangi 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 Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.
Çalışma zamanı hataları
Politika yürütüldüğünde bu hatalar ortaya çıkabilir.
Hata kodu | HTTP durumu | Neden | Düzelt |
---|---|---|---|
steps.jsonthreatprotection.ExecutionFailed |
500 | JSONThreatProtection politikası birçok farklı ExecutionFailed hatası verebilir. Bu hataların çoğu, politikada ayarlanan belirli bir eşik aşıldığında ortaya çıkar. Bu hata türleri arasında şunlar bulunur: nesne girişi adı uzunluğu, nesne girişi sayısı, dizi öğesi sayısı, kapsayıcı derinliği, dize dizesi değeri uzunluğu. Bu hata, yük geçersiz JSON nesnesi içerdiğinde de oluşur. | build |
steps.jsonthreatprotection.SourceUnavailable |
500 |
Bu hata, <Source> öğesinde belirtilen message değişkeni şunlardan biriyse ortaya çıkar:
|
build |
steps.jsonthreatprotection.NonMessageVariable |
500 |
Bu hata, <Source> öğesi mesaj türünde olmayan bir değişkene ayarlanırsa ortaya çıkar.
|
build |
Dağıtım hataları
Yok.
Hata değişkenleri
Bu değişkenler, bu politika bir hatayı tetiklediğinde ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.
Değişkenler | Konum | Örnek |
---|---|---|
fault.name="fault_name" |
fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen 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" } } }
Hata kuralı örneği
<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 gösterimini (JSON) destekleyen API'ler de içerik düzeyinde saldırılara açıktır. Basit JSON saldırıları, bir hizmeti kilitlemek ve uygulama düzeyinde hizmet reddi saldırılarına neden olmak için JSON ayrıştırıcılara boğan yapıları kullanmaya çalışır. Tüm ayarlar isteğe bağlıdır ve hizmet gereksinimlerinizi potansiyel güvenlik açıklarına karşı optimize etmek için uyarlanmalıdır.