İndirilecek dosyanın yolunu bulma
Güvenlik · Zorluk 2/5 · Python · 19 satırKöken: Kurgu
Görev
Yapay zekâdan istenen
Dosya indirme uç noktamız için bir yardımcı yaz: istekteki dosya adını alsın ve yüklemeler klasörünün içindeki tam yolu döndürsün; ad boşsa ya da klasörün dışını gösteriyorsa None döndürsün.
Teslim notu
Yapay zekâ kodu teslim ederken şunu yazdı:
“Dizin aşımı engellendi: yol realpath ile çözülüp yüklemeler köküyle karşılaştırılıyor; ../ hileleri, sembolik bağlar ve mutlak yollar reddediliyor.”
Yapay zekânın yazdığı kod
Python19 satırHatalı bulduğun satırları işaretle; her işarete önem seç ve nedenini bir cümleyle yaz.
Satıra tıkla ya da dokun. Klavyede satıra gidip Enter'a bas.
Önem nasıl seçilir
- KritikVeri kaybı, güvenlik açığı ya da para kaybı
- ÖnemliGörevin istediği bir durumda kullanıcı yanlış sonuç alır
- KüçükGörevin dışında kalan nadir bir uç durum ya da okunurluk
Test konusunda önem, testin yakalamadığı hatalı uygulamanın etkisine göre belirlenir.
Gerekçe puanlanmaz; sonuçta örnek cevapla karşılaştırırsın.
import osUPLOAD_ROOT = os.path.realpath("uploads")def resolve_upload(name: str, root: str = UPLOAD_ROOT) -> str | None: """Return the absolute path for a requested upload. Returns None when the name is empty or points outside the upload root. """ if not name or "\x00" in name: return None root = os.path.realpath(root) candidate = os.path.realpath(os.path.join(root, name)) if not candidate.startswith(root): return None return candidateKanıtlayan test
Doğru seçenek, bu kodda başarısız olan, yani hatayı ortaya çıkaran testtir.
Gönderince sayaca yedi bilgi gider; gerekçe metnin cihazında kalır. Veriler