İstek engelleme eklentisi, belirli URL, başlık veya gövde kalıplarıyla eşleşen HTTP isteklerini engelleyerek korunan kaynaklara dışarıdan erişimi önlemenize yardımcı olur.
Eklenti türü
Güvenlik koruma eklentisi.
Yapılandırma alanları
block_urls, block_headers veya block_bodys alanlarından en az birini yapılandırmanız gerekir.
| Alan | Tür | Gerekli | Varsayılan | Açıklama |
|---|---|---|---|---|
block_urls |
string dizisi | Hayır | - | İstek yolları ve sorgu dizeleriyle eşleştirilecek URL kalıpları. |
block_headers |
string dizisi | Hayır | - | İstek başlığı adları ve değerleriyle eşleştirilecek kalıplar. |
block_bodys |
string dizisi | Hayır | - | İstek gövdesi içeriğiyle eşleştirilecek kalıplar. |
blocked_code |
sayı | Hayır | 403 | Engellenen isteklere döndürülen HTTP durum kodu. |
blocked_message |
string | Hayır | - | Engellenen isteklere döndürülen yanıt gövdesi. |
case_sensitive |
bool | Hayır | true | Eşleştirmenin büyük/küçük harfe duyarlı olup olmadığını belirtir. Büyük/küçük harfe duyarsız eşleştirme için false olarak ayarlayın. |
Örnekler
URL'ye göre istekleri engelleme
block_urls:
- swagger.html
- foo=bar
case_sensitive: false
Engellenen istekler:
curl http://example.com?foo=Bar
curl http://example.com/Swagger.html
case_sensitive değeri false olarak ayarlandığından, foo=Bar ifadesi foo=bar kuralıyla eşleşir ve Swagger.html ifadesi swagger.html kuralıyla eşleşir.
Başlığa göre istekleri engelleme
block_headers:
- example-key
- example-value
Engellenen istekler:
curl http://example.com -H 'example-key: 123'
curl http://example.com -H 'my-header: example-value'
İlk istek, başlık adı example-key içerdiğinden eşleşir. İkinci istek ise başlık değeri example-value içerdiği için eşleşir.
Gövdeye göre istekleri engelleme
block_bodys:
- "hello world"
case_sensitive: false
Engellenen istekler:
curl http://example.com -d 'Hello World'
curl http://example.com -d 'hello world'
case_sensitive değeri false olarak ayarlandığından her iki istek de eşleşir.
Kuralları belirli rotalara veya etki alanlarına uygulama
Farklı rotalar ve etki alanları için ayrı engelleme kuralları tanımlayabilirsiniz. Kurallar sırayla değerlendirilir ve ilk eşleşen kural geçerli olur.
Aşağıdaki yapılandırma route-a ve route-b rotalarına uygulanır:
block_bodys:
- "hello world"
Aşağıdaki yapılandırma *.example.com ve test.com etki alanlarına uygulanır:
block_urls:
- "swagger.html"
block_bodys:
- "hello world"
route-averoute-bifadeleri, ağ geçidi rotalarını oluştururken belirtilen rotaları ifade eder. Bir istemci isteği bu rotalardan biriyle eşleşirse ilgili kurallar geçerli olur.*.example.comvetest.comifadeleri isteklerdeki etki alanı adlarıyla eşleşir. Bir istemci isteği bu etki alanlarından biriyle eşleşirse ilgili kurallar geçerli olur.Kurallar sırayla geçerli olur. İlk kural eşleştiğinde sonraki kurallar atlanır.
İstek gövdesi boyutu sınırı
block_bodys yapılandırıldığında gövde eşleştirme yalnızca 32 MB'tan küçük istekler için uygulanır. 32 MB'tan büyük olan ve block_urls veya block_headers kurallarından hiçbiriyle eşleşmeyen istekler engellenmeden iletilir.
block_bodys yapılandırılmışsa ve istek gövdesi ağ geçidi için yapılandırılan DownstreamConnectionBufferLimits değerini aşarsa ağ geçidi 413 Payload Too Large hatası döndürür. Bu sınırı artırmak için parametre yapılandırma sayfasında DownstreamConnectionBufferLimits değerini ayarlayın.
DownstreamConnectionBufferLimits değerini artırmak ağ geçidinin bellek kullanımını önemli ölçüde artırır. Bu değeri dikkatli bir şekilde ayarlayın.