Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Graphql'de yüklendiğinde () kullanıldığında ortak güvenlik tuzakları nelerdir?


Graphql'de yüklendiğinde () kullanıldığında ortak güvenlik tuzakları nelerdir?


Tipik olarak ilgili verileri veya ilişkilendirmeleri (örn. ORM tabanlı GraphQL çözücülerinde) yüklemek için bir yöntem olan GraphQL'de `` Whated () 'kullanılırken, birkaç yaygın güvenlik tuzağı ortaya çıkabilir. Bu tuzaklar çoğunlukla daha geniş GraphQL güvenlik sorunları ile ilgilidir, ancak özellikle alakalıdır, çünkü `` ne zaman yüklendi () 'genellikle ek iç içe veya ilgili verilerin getirilmesini, karmaşıklığı ve riski artırmayı içerir.

GraphQL'de `` Whil Loaded () 'ile ortak güvenlik tuzakları

** 1. Tutarsız veya eksik yetkilendirme kontrolleri
`WhenLoaded ()` `İlk çözücü çalıştıktan sonra iç içe veya ilgili verilerin yüklenmesini genellikle tetikler. Yetkilendirme mantığı her çözümleyici veya veri yükleme noktasında tutarlı bir şekilde uygulanmazsa (`` whated () `tarafından tetiklenenler dahil), yetkisiz kullanıcılar hassas verilere erişebilir. Bu, aynı verilere yönelik bazı yolların korunduğu yaygın bir konudur, ancak diğerlerinin (`` whented () `aracılığıyla) gibi), saldırganların erişim kontrollerini atlamasına izin verir [4] [6]. Yetkilendirme hem sorgu düzeyinde hem de tüm iç içe çözümleyiciler veya veri yükleyicileri içinde uygulanmalıdır.

** 2. Hizmet Reddetme (DOS) ile ilgili aşırı getirme ve karmaşık sorgular
`` Whilloaded () 'kullanmak, büyük miktarlarda ilgili veri getiren derin iç içe sorgulara neden olabilir. Saldırganlar, aşırı veri yüklemesine ve işlemeye neden olan ve kaynak tükenmesine ve DOS'a yol açan sorguları hazırlayarak kullanabilirler. Graphql'in tek bir sorguda birden fazla ilgili nesneyi getirme yeteneği, kaynak kullanımını tahmin etmeyi zorlaştırır ve `` ne zaman yüklendi () 'ek verileri şartlı olarak yükleyerek bunu daha da kötüleştirebilir [4] [5]. Azaltma, sorgu derinliği sınırlaması, karmaşıklık puanlama ve hız sınırlamasını içerir.

** 3. Uygun olmayan alan seçimi yoluyla hassas verilerin maruz kalması
`` Whated () 'ile ilgili verileri hangi alanların maruz kaldığı üzerinde dikkatli bir kontrol olmadan yüklerse, şifreler, jetonlar veya özel kullanıcı detayları gibi hassas bilgiler GraphQL yanıtında yanlışlıkla döndürülebilir [5]. Yetkilendirme kontrolleri eksikse veya hata mesajları hassas bilgileri sızdırıyorsa bu risk arttırılır. Geliştiriciler, iç içe veri yüklendiğinde bile hassas alanların asla maruz kalmamasını sağlamalıdır.

** 4. Yanlış giriş doğrulaması yoluyla enjeksiyon saldırıları
Dinamik bağımsız değişkenler veya filtrelerle `` whented () `kullanıldığında, uygunsuz giriş doğrulaması, altta yatan veri getirme düzgün bir şekilde parametrelendirilmezse, GraphQL sorgu enjeksiyonu veya hatta SQL enjeksiyonu gibi enjeksiyon güvenlik açıklarına yol açabilir [6]. Saldırganlar, veri getirme mantığını manipüle eden kötü amaçlı sorgular veya komutlar enjekte edebilir. Parametreli sorguların uygun giriş validasyonu ve kullanımı esastır.

** 5. Hız sınırlama ve kaba kuvvet korumalarını atlama
`` Whated () `tek bir sorgu içinde birden fazla iç içe veri getirilmesine neden olabileceğinden, saldırganlar geleneksel oran sınırlamasını atlamak için bunu kullanabilir. Örneğin, birçok veri getirmeyi veya mutasyonu tetikleyen, regest başına sınırları tetiklemeden etkili bir şekilde kaba kuvvet veya numaralandırma saldırıları gerçekleştiren tek bir karmaşık sorgu gönderebilirler [4] [7]. Oran sınırlama stratejileri sorgu karmaşıklığını ve iç içe operasyonları dikkate almalıdır.

** 6. Şema içgözlemi ve takımlar nedeniyle artan saldırı yüzeyi
`` Whated () 'kullanımı genellikle birden fazla iç içe ilişkiye sahip karmaşık bir şemayı yansıtır. Saldırganlar, istenmeyen verilere erişmek için `` () '' i kullanan bu ilişkileri ve zanaat sorgularını keşfetmek için GraphQL içgözlemini ve GraphIQL gibi araçları kullanabilir [1] [8]. Üretimde içgözlemin devre dışı bırakılması veya yetkili kullanıcılarla sınırlandırılması bu riski azaltabilir.

Özet

GraphQL'de `` Whilloaded () 'kullanırken ana güvenlik tuzakları:

- Tüm iç içe geçmiş veri yükleme yollarında tutarlı yetkilendirmeyi uygulamamak.
- DOS'a neden olan aşırı karmaşık veya derin sorgulara izin vermek.
- Hassas verilerin iç içe geçmiş alanlar aracılığıyla ortaya çıkması.
- Enjeksiyon saldırılarına yol açan yetersiz giriş doğrulaması.
- Karmaşık iç içe sorgular nedeniyle hız sınırlarını atlatma.
- Şema içgözlem ve takım nedeniyle artan maruziyet.

Etki hafifletmeler arasında her çözücüde titiz yetkilendirme kontrolleri, sorgu karmaşıklığı ve derinlik sınırlaması, katı giriş validasyonu, dikkatli şema tasarımı, üretimde içgözlemin devre dışı bırakılması ve Graphql'in sorgu yapısı için uyarlanmış kapsamlı oran sınırlamasını içerir [3] [4] [5] [6] [8].

Alıntılar:
[1] https://portswigger.net/web-security/graphql
[2] https://www.imperva.com/blog/graphql-vulnerability-common-tacks/
[3] https://tyk.io/blog/graphql-security-7-Common-vulnableacity-and-how-ton-mitigate-the-risks/
[4] https://www.brightsec.com/blog/graphql-security/
[5] https://blog.convisoappsec.com/en/security-in-graphql/
[6] https://wundergraph.com/blog/the_complete_graphql_security_guide_fixing_the_13_oM'lar
[7] https://beaglesecurity.com/blog/article/graphql-attacks-vulnability.html
[8] https://www.fastly.com/blog/expling-the-security-implications-of graphql