Son yıllarda popülerlik kazanan büyük dil modelleri (LLM) WordPress eklentileri oluşturma sürecini hızlandırıyor. Ancak basit bir "bana bir WordPress eklentisi yaz" komutuyla karşılaşılan gerçeklik, çoğu geliştiriciyi hayal kırıklığına uğratıyor. Ortaya çıkan 400 satırlık tek dosya, yanlış öncelikli kancaları kaydeden, doğrulanmamış kullanıcı girişlerini doğrudan veritabanına yazan ve hatta kullanımdan kaldırılmış fonksiyonları çağıran bir yapıya sahip oluyor. Peki bu sorunların temelinde yatan gerçek sebep ne?
Sorunun cevabı, yapay zeka modellerinin aslında ne için tasarlandığında gizli. Bu modeller, istatistiksel olarak en olası karakter dizilerini tahmin etmek üzere eğitilmişlerdir. İnternet üzerindeki her türlü kodu — güvenli olanları, vasat olanları ve hatta 2014 yılında kopyalanıp yapıştırılan güvenlik açıklarını barındıranleri — analiz ederler. Bu nedenle, bir WordPress eklentisi talebiyle karşılaştıklarında, eldeki en iyi WordPress geliştirici kılavuzunu değil, sadece istatistiksel olarak en olası karakter dizisini üretmeyi hedeflerler. Güvenlik, onların doğasında yer alan bir kısıtlama değildir; sadece binlerce diğer desen arasında yer alan bir unsurdur.
Bu durumda akla gelen temel soru şu: Bir olasılıksal metin üreticisini, belirlenmiş güvenlik kurallarını ihlal eden kodlar üretmesini engelleyecek şekilde nasıl yeniden yapılandırabiliriz?
WordPress Güvenliğinde Kritik Hatalar: Hangi Durumlar Tehlikeli?
WordPress ekosisteminde, yapay zeka tarafından üretilen kodun oluşturduğu güvenlik riskleri, genel uygulama kodlarından farklı şekilde ortaya çıkar. WordPress'in kanca (hook) tabanlı mimarisi, tüm önemli işlemlerin eylem ve süzgeçlere eklenen dönüş fonksiyonları tarafından gerçekleştirilmesini sağlar. Bu mimari, AI tarafından üretilen kodlar için iki temel tehlikeyi beraberinde getirir:
- Tek bir hata büyük hasara yol açabilir. Bir izin kontrolü (
permission_callback) olmayan bir REST uç noktası, yalnızca küçük bir hata değil, aynı zamanda sisteme yetkisiz erişim sağlayan açık bir kapıdır. Kimlik doğrulama (nonce) kontrolü yapılmayan bir AJAX işleyicisi, otomatik tarayıcılar tarafından kolayca istismar edilebilecek bir CSRF zafiyeti oluşturur.
- Tehlikeli satırlar masum görünebilir. Bir dil modeli,
$wpdb->query("UPDATE ... WHERE id = " . $_GET['id'])gibi bir kod satırı üretebilir. Bu satır derlenecek ve demo ortamında "çalışıyor" görünecektir. Ancak SQL enjeksiyon saldırılarına karşı son derece savunmasız bir yapıya sahiptir.
WordPress'te üç temel güvenlik kontrolü — girişlerin temizlenmesi (sanitize_text_field), kimlik doğrulama (wp_verify_nonce) ve yetkilendirme (current_user_can) — AI tarafından en sık atlanan unsurlar arasında yer alır. Çünkü bu kontrollerin eğitim verilerinde yer alma olasılığı, kodun "çalışabilir" olması kadar yüksek değildir. Pek çok çalışan eğitim kodu, bu kontrolleri ihmal eder.
"Güvenlik kontrollerini stil önerileri olarak değil, zorunlu derleme gereksinimleri olarak uygulamak gerekiyor."
Bu yaklaşım, yalnızca daha iyi bir istemde bulunarak çözülemez. İstekler, modeli yönlendirmeye çalışan olasılıksal önerilerdir. Yapılması gereken, koda belirli bir yapısal düzen getirmektir.
Güvenilir Kod Üretimi için Üç Aşamalı Mimarimiz
Kod üretimini tek bir metin tamamlayıcı çağrı olarak değil, yapısal veriler arasında geçiş yapan uzmanlaşmış ajanların oluşturduğu bir boruhattı olarak yeniden tasarladık. Bu yaklaşım, üç temel aşamadan oluşmaktadır:
Aşama 1 — Amaç Analizi ve Mavi Çizim ("PM Ajanı")
İlk ajan hiçbir PHP kodu yazmaz. Yalnızca kullanıcının İngilizce talimatlarını yapısal JSON formatına dönüştürür. Örneğin, "editörlerin gönderileri inceleme için işaretlemesine olanak tanıyan bir eklenti" komutu aşağıdaki gibi bir JSON belgesine dönüşür:
{
"plugin_slug": "post-review-flags",
"capabilities_required": ["edit_others_posts"],
"hooks": [
{
"type": "action",
"name": "admin_menu",
"callback": "register_review_page"
},
{
"type": "ajax",
"name": "flag_post",
"auth": "logged_in",
"nonce": true
}
],
"data_layer": {
"storage": "post_meta",
"meta_key": "_needs_review"
},
"files": [
"post-review-flags.php",
"includes/class-flag-controller.php",
"admin/views/review-list.php"
]
}Bu belge, sistem için bir sözleşme niteliğindedir. Güvenlik kontrolleri, kod üretilmeden önce planlama aşamasında belirlenir. AJAX işleyicisinin "nonce": true olarak işaretlenmesi, aşağıdaki ajanlara bu gerekliliğin zorunlu olduğunu bildirir.
Aşama 2 — Bağlam Odaklı Kod Üretimi ("Geliştirici Ajanı")
İkinci ajan, üretilen JSON belgesini temel alarak gerçek dosyaları oluşturur. Buradaki kritik mimari karar, dosya ağacındaki endişelerin ayrılmasıdır: veritabanı işlemleri, kontrolcüler ve görünüm şablonları birbirinden bağımsız dosyalar olarak üretilir.
Ajan, dosyaları tek tek oluşturmanın yanı sıra, çoklu dosya bağımlılıklarını da takip eder. Örneğin, bir kontrolcüde tanımlanan bir fonksiyonun, görünümde nasıl çağrıldığına dair bir harita oluşturur. Bu sayede, bağımlılıklar arasında tutarlılık sağlanır.
Aşama 3 — Belirlenimci Denetim Döngüsü ("Güvenlik Ajanı")
Bu aşama, güvenilir kod üretiminin temelini oluşturur. Üretilen kodlar, bir güvenlik ajanı tarafından parse edilir ve aşağıdaki kurallara göre denetlenir:
- Her kayıtlı AJAX/REST uç noktası için yetkilendirme kontrolü ve gerekli durumlarda kimlik doğrulama (
nonce) zorunludur. - Her süperglobal kaynaktan gelen değer, kullanımdan önce mutlaka temizlenmelidir.
- Dinamik değerlerin çıktısına ulaşmadan hemen önce kaçış fonksiyonları uygulanmalıdır.
Eğer bu kurallardan herhangi biri ihlal edilirse, kod otomatik olarak reddedilir ve geliştiriciye hata raporu sunulur. Bu süreç, kodu üreten ajan tarafından değil, bağımsız bir güvenlik denetimi tarafından gerçekleştirilir. Bu sayede, güvenlik kontrolleri, geliştiricinin dikkatinden bağımsız olarak otomatik olarak uygulanmış olur.
Gelecekteki Adımlar: Güvenilir Yapay Zeka Geliştirme için Yol Haritası
Yapay zeka destekli kod üretimi, WordPress ekosisteminde devrim yaratma potansiyeline sahip. Ancak bu potansiyelin gerçekleşmesi, yalnızca olasılıksal tahminlerden öteye geçen, belirli kurallara bağlı sistemlerin geliştirilmesiyle mümkün. Gelecekte, geliştiricilerin yalnızca neyi oluşturmak istediklerini belirtmeleri yeterli olacak; güvenlik ve yapısal bütünlük, otomatik olarak sağlanacak.
Bu mimari, yalnızca WordPress için değil, PHP tabanlı diğer projeler ve hatta farklı programlama dilleri için de uyarlanabilir. Kritik olan, güvenlik ve kaliteyi, kod üretiminin ayrılmaz bir parçası haline getirmektir. Böylece, yapay zeka destekli araçlar, geliştiriciler için güvenilir ve verimli birer yardımcıya dönüşecekler.
Yapay zeka özeti
WordPress eklentileri için AI destekli kod üretiminin güvenlik riskleri ve bu risklere karşı geliştirdiğimiz üç aşamalı mimari hakkında detaylı bilgi edinin.