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_directiveskural setinizi bağlayın. - Test edilmemiş ve güvenlik denetiminden geçmemiş hiçbir kodu canlıya almayın.