İçeriğe geç
Başlangıç · Sonraki hedefe 100 XP
Son hareketler
Henüz bir öğrenme hareketi yok. İlk derse başlayın.

Web Uygulama Güvenliği

LFI: Kullanıcı girdisini dosya seçimine dönüştürmeme

Yerel dosya dahil etme riski, istemci girdisinin sunucuda okunacak veya çalıştırılacak dosyayı kontrol etmesiyle ilişkilidir. Yol temizleme tek başına sağlam bir dosya seçimi sözleşmesi değildir.

Bu derste neler var?

SİBERSALDİRİ.COM · KONU ODAKLI DERS

Bu derste kazanacaklarınız

  • Kaynak kimliği ile Sabit eşleme arasındaki ilişkiyi açıklamak.
  • “İzin listesi neden yol temizlemeden daha güçlü olabilir?” sorusuna gerekçeli yanıt vermek.
  • Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.

Çalışma mantığı ve güven sınırı

Dışarıya dosya yolu yerine anlamlı kaynak kimliği sunun. Sunucuda bu kimliği sabit bir izin listesine eşleyin. İzin verilen kökün gerçek yolunu ve sembolik bağlantı etkisini değerlendirin. Dosya okuma ile PHP include aynı etkiyi taşımaz; çalıştırma sınırını ayrıca düşünün. Hata mesajlarında tam sistem yollarını göstermeyin.

LFI: Kullanıcı girdisini dosya seçimine dönüştürmeme akışı: Kaynak kimliği → Sabit eşleme → İzinli dosya
Kaynak kimliği → Sabit eşleme → İzinli dosya. Şema ilişkiyi gösterir; bütün uygulamanın yerine geçmez.

Açıklamalı örnek

Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.

<?php
$pages = ['intro' => __DIR__ . '/pages/intro.php'];
$key = $_GET['page'] ?? 'intro';
if (!is_string($key) || !isset($pages[$key])) { http_response_code(404); exit; }
require $pages[$key];

Beklenen sonuç ve yorumu

Yalnızca sunucunun tanımladığı intro sayfası seçilebilir.

Karşılaştırmalı durumlar

DurumBeklenen yaklaşımNeden?
Sabit izinli kimlikEşlenmiş dosyaSunucu kaynak seçer
Serbest yolKabul etmeDosya sınırı istemciye geçer
Sembolik bağlantıGerçek hedefi inceleGörünür yol yeterli olmayabilir

Uygulama görevi

Bilinmeyen kimlik, dizi girdisi ve geçerli kimlik için beklenen sonuçları yazın.

  1. İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
  2. Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
  3. Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.

Sık yapılan hata ve düzeltme yönü

Kullanıcı metnini include yoluna birleştirmeyin.

Kendinizi sınayın

İzin listesi neden yol temizlemeden daha güçlü olabilir?

Açıklamalı yanıt: Kabul edilen kaynak kümesini açıkça sınırlar; saldırganın serbest dosya yolu üretmesini gereksiz kılar.

İlgili derslerle ilerleyin

Teknik başvuru

Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.

Bir adım daha ilerlediniz.

Dersi bitirdiyseniz tamamlandı olarak işaretleyin. İlerlemeniz bu cihazda saklanır.

Akademi menüsü

Akademide ara

En az 2 karakter yazın.