1. Vibe Coding Akımı ve Gözden Kaçan Güvenlik Tuzağı

Son dönemde popülerleşen Vibe Coding (hissederek, yapay zekaya vizyonu aktararak hızlı kod üretme), geliştiricilerin sıfırdan çalışan bir prototipe dakikalar içinde ulaşmasını sağladı. Ancak yapay zekanın "çalışan" her kodu, doğası gereği "güvenli ve sürdürülebilir" anlamına gelmez.

Kritik Zafiyet Uyarısı: AI modelleri varsayılan olarak en hızlı çözümü üretmeye meyillidir. Çoğu zaman secret anahtarları koda gömer, SQL injection açıklarına davetiye çıkarır veya CORS ayarını * olarak bırakır. Bu tuzaktan kaçınmak için Savunmacı Mimari zorunludur!

2. Savunmacı Mimari Döngüsü (Defensive Cycle)

AI Ajanlarında Savunmacı Kodlama Akışı
1

Kırmızı Çizgiler

Hard constraints kuralları ile secret ve raw SQL yasaklanır.

2

Girdi Doğrulama

Tüm body, query ve parametreler Zod şemalarıyla kilitlenir.

3

Self-Correction

"Bir hacker bu koda nereden saldırır?" sorusuyla güvenlik denetimi.

4

Doğrulama Testi

Birim ve entegrasyon testleriyle kodun çalıştığı ispatlanır.

3. Örnek Kod: Güvensiz vs Savunmacı Yaklaşım

// ❌ GÜVENSİZ VIBE CODING ÖRNEĞİ:
app.post('/api/user', async (req, res) => {
  const { username, password } = req.body;
  // Tehlike: Düz metin şifre ve SQL Injection riski!
  const query = "INSERT INTO users VALUES ('" + username + "', '" + password + "')";
  await db.query(query);
  res.json({ success: true });
});

// ✅ SAVUNMACI (DEFENSIVE) KODLAMA ÖRNEĞİ:
import { z } from 'zod';
import bcrypt from 'bcrypt';

const UserSchema = z.object({
  username: z.string().min(3).max(30).trim(),
  password: z.string().min(8)
});

app.post('/api/user', async (req, res) => {
  const result = UserSchema.safeParse(req.body);
  if (!result.success) {
    return res.status(400).json({ error: 'Geçersiz girdi parametreleri.' });
  }
  
  const hashedPassword = await bcrypt.hash(result.data.password, 12);
  // Güvenli: Parametreli sorgu
  await db.query('INSERT INTO users (username, password) VALUES ($1, $2)', [result.data.username, hashedPassword]);
  return res.status(201).json({ message: 'Kullanıcı güvenle oluşturuldu.' });
});

Anahtar Çıkarımlar

  • Yapay zekayı sadece kod yazıcı değil, güvenlik mimarı olarak eğitin.
  • Projenize başlamadan önce prime_directives kural setinizi bağlayın.
  • Test edilmemiş ve güvenlik denetiminden geçmemiş hiçbir kodu canlıya almayın.