Geliştiriciler için Yapay Zeka Destekli Kodlama
Francesca Donadoni
AI Curriculum Manager, DataCamp
E-posta adreslerini ayrıştırmak için bir Python fonksiyonu yazın.
E-posta adreslerini ayrıştırmak için bir Python fonksiyonu yazın. Aşağıdaki testleri geçmelidir:
- "[email protected]" gibi geçerli bir adresi kabul eder.
- "user@@domain" gibi geçersiz girdiyi reddeder.
- Boş giriş için bir ValueError yükseltir.
Kullanıcı istemi: Kullanıcı tarafından gönderilen form verilerini işleyen ve bir SQL veritabanına ekleyen bir fonksiyon için Python'da birim testleri oluşturun.
Model yanıtı:
İşte form verilerini işleyen ve bir SQL veritabanına kayıt ekleyen bir fonksiyon için doğrulama, normalleştirme, SQL enjeksiyon güvenliği ve işlem davranışını kapsayan çalışmaya hazır bir pytest paketi.
[...]
# ---------- Test DB sabitleri ----------
@pytest.fixture()
def conn():
"""Kullanıcılar tablosu içeren bellek içi SQLite DB."""
c = sqlite3.connect(":memory:") [...]
Kullanıcı istemi: Aşağıdaki fonksiyon için pytest kullanarak Python birim testleri oluşturun. Boş giriş, girdideki SQL anahtar kelimeleri ve özel karakterler için durumlar ekleyin. Varsayılan bir veritabanı bağlantısı olduğunu varsayın. <INSERT FUNCTION>
Model yanıtı:
İşte boş giriş, SQL anahtar kelimeleri ve özel karakterleri kapsayan ve commit/close davranışını doğrulayan, istisnaların yutulduğunu kontrol eden, gerçek DB kullanmayan bir mock içeren bağımsız bir pytest test modülü.
[...]
@pytest.fixture
def mock_sqlite_connect(monkeypatch):
"""
sqlite3.connect'i MagicMock bağlantısı + imleç döndürecek şekilde yama yapar.
[...]
$$
Potansiyel güvenlik açıkları için aşağıdaki Python fonksiyonunu tarayın ve varsa daha güvenli alternatifler önerin.
$$
Bu kodu SQL enjeksiyonu, XSS ve giriş doğrulama hataları gibi yaygın web güvenlik sorunları için inceleyin.

def login(username, password):
query = f"SELECT * FROM users WHERE username = '{username}' \
AND password = '{password}'"
result = db.execute(query)
return result.fetchone()
İşte giriş fonksiyonunuzun OWASP İlk 10 denetimi ve daha güvenli bir yeniden yazımı.
username = "admin' --" → şifre kontrolünü atlar. [...]Geliştiriciler için Yapay Zeka Destekli Kodlama