I/O İleri

Seri duruma getirme filtreleri

Saldırıları önlemek için hangi sınıfların seri durumdan çıkarılabileceğini kısıtlayın.

✕ Java 8
// Dangerous: accepts any class
ObjectInputStream ois =
    new ObjectInputStream(input);
Object obj = ois.readObject();
// deserialization attacks possible!
✓ Java 9+
ObjectInputFilter filter =
    ObjectInputFilter.Config
    .createFilter(
        "com.myapp.*;!*"
    );
ois.setObjectInputFilter(filter);
Object obj = ois.readObject();
Bu kodda bir sorun mu gördünüz? Bize bildirin.
🛡️

Güvenlik

Beklenmedik/kötü niyetli sınıfların seri durumdan çıkarılmasını önleyin.

📐

İnce taneli

Derinlik, dizi boyutu, referanslar ve sınıf örüntülerini kontrol edin.

🏗️

JVM genelinde

JVM'deki tüm seri duruma getirme işlemleri için global filtre belirleyin.

Eski Yaklaşım
Her Şeyi Kabul Et
Modern Yaklaşım
ObjectInputFilter
JDK'dan itibaren
9
Zorluk
İleri
Seri duruma getirme filtreleri
Mevcut

JDK 9'dan itibaren geniş çapta kullanılabilir (Eylül 2017)

ObjectInputFilter, sınıfları izin listesine/reddetme listesine almanıza, nesne grafiği derinliğini, dizi boyutlarını ve referans sayılarını sınırlandırmanıza olanak tanır. Bu, harici kütüphaneler olmadan seri duruma getirme güvenlik açıklarına karşı koruma sağlar.

Paylaş 𝕏 🦋 in