E-postayla hesap bulma
Güvenlik · Zorluk 1/5 · Python · 19 satırKöken: Kurgu
Görev
Yapay zekâdan istenen
"Şifremi unuttum" uç noktası için e-postayla hesap bulan bir fonksiyon yaz. E-postalar veritabanında küçük harfle saklanır; arama baştaki ve sondaki boşlukları ve büyük-küçük harfi yok saysın. Hesap varsa kimliğini ve e-postasını, yoksa None döndürsün. Uç nokta her durumda aynı cevabı verir; bu fonksiyon yalnız hesabı bulur.
Teslim notu
Yapay zekâ kodu teslim ederken şunu yazdı:
“E-posta temizlenip küçük harfe çevriliyor, uzunluk sınırı kontrol ediliyor. Yalnız gereken iki sütun okunuyor, şifre özeti dönmüyor.”
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 sqlite3MAX_EMAIL_LENGTH = 254def find_account(conn: sqlite3.Connection, email: str) -> dict | None: """Look up an account for the "forgot password" endpoint. Returns the account's id and email, or None if no account matches. """ email = email.strip().lower() if not email or len(email) > MAX_EMAIL_LENGTH: return None row = conn.execute( f"SELECT id, email FROM accounts WHERE email = '{email}'" ).fetchone() if row is None: return None return {"id": row[0], "email": row[1]}Kanı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