"owasp" etiketli 3 yazı.
GraphQL, istemciye sorgu esnekliği verirken introspection ile şema ifşası, derin/döngüsel sorgularla DoS, alias/batching ile rate-limit atlatma ve alan düzeyi yetkilendirme boşlukları (BOLA/IDOR) gibi REST'te görmediğimiz saldırı yüzeyleri açar. Savunma tek bir ayarla değil; introspection kısıtlaması, sorgu derinliği/karmaşıklık limiti, çözücü seviyesinde yetkilendirme ve persisted queries gibi katmanların birlikte kurulmasıyla sağlanır. Bu yazı her zafiyeti somut sorgu örnekleriyle gösterir ve doğrulanmış CVE'lerle savunma reçetesini verir.
Güvensiz deserializasyon, uygulamanın saldırgan kontrolündeki seri veriyi doğrulamadan nesneye dönüştürmesidir; native serileştirme formatları (Java ObjectInputStream, Python pickle, PHP unserialize, .NET BinaryFormatter) deserializasyon sırasında sınıfları örnekler ve metotları tetikler, bu da mevcut kütüphanelerdeki "gadget" sınıfları zincirleyerek uzaktan kod çalıştırmaya (RCE) yol açar. Savunmanın temeli güvenilmez veriyi hiç deserialize etmemek, JSON gibi veri-only formatlara geçmek, kaçınılmazsa sınıf allowlist filtreleri ve imzalama uygulamaktır.
IDOR (Insecure Direct Object Reference - Güvensiz Doğrudan Nesne Referansı), bir uygulamanın kullanıcının kendi verisine mi yoksa başkasının verisine mi eriştiğini sunucu tarafında kontrol etmemesinden doğan bir yetkilendirme (authorization) zafiyetidir. Tespit edilmesi otomatik araçlarla oldukça zordur; istismarı ise son derece kolaydır. Bu yazıda zafiyetin nasıl çalıştığını, neden hâlâ bu kadar yaygın olduğunu ve nasıl test edilip önlendiğini inceliyoruz.