Vibe coding uygulamaları güvenli mi? Kontrol edilecek 8 açık

Kısaca
15 Kasım 2026 itibarıyla vibe coding ile yapılan uygulamalar varsayılan olarak güvenli değil: 2026'daki bir denetim, yayındaki 200 uygulamanın %91,0'ında en az bir güvenlik açığı buldu; en sık görülen sorun bozuk erişim kontrolüydü [4]. Çözüm, başında veritabanı kuralları, sızan anahtarlar ve eksik oturum kontrolleri gelen kısa bir kontrol listesi [1][3][6].
Önemli çıkarımlar
- 2026'da herkese açık yayındaki 200 vibe coding uygulamasını inceleyen bir denetim, bunların %91,0'ında en az bir açık buldu; bozuk erişim kontrolü uygulamaların %64,00'ını etkiledi [4].
- 8.641 Lovable deposunu inceleyen 2026 tarihli bir ACM CCS çalışması, depoların %61,2'sinde oturum açmamış ziyaretçilere açık en az bir veritabanı okuma kuralı buldu [5].
- Escape, 5.600'den fazla herkese açık vibe coding uygulamasında 2.000'den fazla açık, 400'den fazla ifşa olmuş gizli bilgi ve 175 kişisel veri vakası buldu ve bu rakamları alt sınır olarak niteledi [3].
- CVE-2025-48757 bunun nasıl olduğunu gösterdi: Mart 2025'te taranan 1.645 Lovable projesinin 170'inde, uygun satır kuralları olmadan okunabilen tablolar vardı [1][2].
- Supabase'in publishable anahtarı herkese açık olacak şekilde tasarlandı; ancak tarayıcı kodundaki bir secret veya service_role anahtarı tam erişim verir ve tüm satır kurallarını atlar [6][7].
- 15 Kasım 2026 itibarıyla Supabase, eski anon ve service_role anahtarlarını 2026 sonuna kadar kullanımdan kaldıracağını söylüyor; bu yüzden eski vibe coding uygulamalarının anahtarlarını şimdi gözden geçirmesi gerekiyor [8].
- İki hesap ve oturumu kapalı bir tarayıcı, en yaygın açıkları yabancılardan önce ortaya çıkarır [4][5].
Bu sayfada 12 bölüm
- Vibe coding ile yapılan uygulamalar güvenli mi?
- Güvenlik çalışmaları vibe coding uygulamalarında ne buluyor?
- Yapay zekâ araçları neden güvensiz uygulamalar üretiyor?
- Önce hangi 8 güvenlik açığını kontrol etmeliyim?
- Vibe coding uygulamamı bu açıklara karşı nasıl test ederim?
- Açık Supabase kurallarını ve sızan anahtarları nasıl düzeltirim?
- Yerleşik güvenlik tarayıcıları her şeyi yakalar mı?
- Başkalarının vibe coding ile yaptığı uygulamaları kullanmak güvenli mi?
- Sık yapılan hatalar
- Sık sorulan sorular
- Sözlük
- Kaynaklar
Vibe coding ile yapılan uygulamalar güvenli mi?
Varsayılan olarak değil: burada anılan büyük çalışmaların hepsi, incelediği uygulamaların büyük bir bölümünde ciddi güvenlik açıkları buldu [3][4][5]. Uygulamalar genellikle çalışıyor. Sorun, yabancılara neye izin verdikleri.
2026'da yapılan bir denetim, Claude Code ve Lovable ile yapılmış 9.041 açık kaynak uygulamayı topladı ve bunlardan herkese açık yayındaki 200'ünü inceledi. Toplam 1.186 açık buldu; 200 uygulamanın 182'sinde (%91,0) en az bir açık vardı [4]. Bu açıkların %65,77'si kritik veya yüksek olarak derecelendirildi; %18,47'si kritikti [4].
Yazarlar daha iyi promptların ve ajan ayarlarının sorunu çözüp çözmediğini de test etti. Sorunu azalttılar ama ortadan kaldıramadılar; aynı görev üç kez çalıştırıldığında bir seferinde güvenli, bir sonrakinde güvensiz sonuç verebiliyordu [4]. Yani bir sürümdeki temiz sonuç, bir sonraki hakkında pek bir şey söylemiyor.
Yöntemin temelleri için Pouyam rehberi Vibe Coding Explained: What It Is, How It Works and the Real Risks'e bakın. İlk proje için Vibe Coding for Beginners: How to Start Safely in 2026 bir başlangıç planı sunar. Bu sayfa bir seviye daha derine iniyor: belirli açıklar ve her birinin nasıl test edileceği.
Güvenlik çalışmaları vibe coding uygulamalarında ne buluyor?
Dört bağımsız kaynak aynı zayıf noktayı gösteriyor: yanlış kişinin okuyabildiği veya değiştirebildiği veriler [1][3][4][5].
- Yayındaki 200 uygulamanın denetimi (2026): Bozuk erişim kontrolü, 1.186 açığın 339'uyla (%28,58) en büyük kategoriydi ve uygulamaların %64,00'ını etkiledi. Enjeksiyon %54,00'ını, kimlik doğrulama hataları %51,50'sini etkiledi [4].
- ACM CCS 2026 çalışması: Tam geçmişi olan 8.641 Lovable deposunda okuma kurallarının %11,2'si oturum açmamış ziyaretçilere açıktı ve depoların %61,2'sinde en az bir böyle kural vardı. Yeniden oynatma testi, örneklenen 400 deponun 353'ünde ifşayı doğruladı [5].
- Escape (Ekim 2025): Lovable, Base44 ve Create.xyz gibi platformlarda yapılmış 5.600'den fazla herkese açık uygulamanın pasif taraması 2.000'den fazla açık, 400'den fazla ifşa olmuş gizli bilgi ve tıbbi kayıtlar, IBAN'lar (banka hesap tanımlayıcıları), telefon numaraları ve e-postalar dahil 175 kişisel veri vakası buldu [3].
- CVE-2025-48757 (2025): 21 Mart 2025'te tamamlanan bir tarama, 1.645 Lovable projesinin 170'inde, yaklaşık %10,3'ünde, yetersiz satır kurallarına sahip 303 veritabanı uç noktası buldu [1].
Escape, taramanın yıkıcı hiçbir işlem yapmadığını, bu yüzden rakamların alt sınır olduğunu vurguluyor; daha derin bir test daha fazlasını bulurdu [3]. Aynı ihtiyat buradaki tüm rakamlar için geçerli: Bu çalışmalar dışarıdan görebildiklerini sayıyor.
Yapay zekâ araçları neden güvensiz uygulamalar üretiyor?
Çünkü araçlar çalışan bir uygulama hedefliyor ve güvenlik kuralları, promptta nadiren belirtilen iş ayrıntılarına bağlı [4][11].
Çalışan kodu kontrol etmek kolaydır: Sayfa yüklenir, düğme çalışır. Her kaydı kimin görebileceği ise bir iş kararıdır ve kimse bunu yazmazsa araç tahmin etmek zorunda kalır. 2026 denetimi açıkları, yapay zekâ ajanlarının üç sınırı altında toplanan sekiz tekrarlayan hata kalıbına bağlıyor: bellek, hedefler ve bilgi [4].
Yapay zekâ modellerine yönelik geniş testler de aynı boşluğu gösteriyor. Veracode'un GenAI Code Security Report 2026 raporu, testlerinde kod üretme görevlerinin yaklaşık %44'ünün bir güvenlik açığı getirdiğini buldu [11]. AWS'nin aktardığı bir kıyaslama testinde 12 ajan ayarının en iyisi görevlerin %57'sini doğru çözdü, ancak yalnızca %11,8'ini hem doğru hem güvenli şekilde çözdü [10].
Birçok vibe coding uygulaması ayrıca güvenliği veritabanına taşıyor. Tarayıcı doğrudan barındırılan bir veritabanıyla konuşuyor; bu yüzden veritabanı kuralları bir ziyaretçiyle her satır arasındaki tek engel [1][6]. Kurallar yoksa veya çok genişse, adresi bilen herkes her şeyi isteyebilir.
Önce hangi 8 güvenlik açığını kontrol etmeliyim?
Çalışmaların en sık bulduğu açıklarla, verebilecekleri zarara göre sıralayarak başlayın [1][3][4][5].
- Açık veritabanı kuralları: Row level security olmayan ya da her ziyaretçinin tüm satırları okumasına izin veren kurallara sahip tablolar. CVE-2025-48757'nin ve ACM bulgularının kökü buydu [1][5].
- Bozuk erişim kontrolü: Oturum açmış bir kullanıcı, adresteki veya istekteki bir kimliği değiştirerek başka birinin kaydını açabiliyor. 2026 denetiminin en büyük kategorisiydi [4].
- Tarayıcıdaki gizli anahtarlar: Ön yüz koduna konmuş bir Supabase secret veya service_role anahtarı, ödeme anahtarı ya da yapay zekâ sağlayıcısı anahtarı. Escape 400'den fazla ifşa olmuş gizli bilgi buldu [3][6].
- Eksik veya zayıf oturum kontrolleri: Oturum olmadan yanıt veren özel sayfalar veya API rotaları. Kimlik doğrulama hataları denetlenen uygulamaların %51,50'sini etkiledi [4].
- Enjeksiyon: Kullanıcı girdisinin kontrolsüz şekilde sorgulara veya HTML'e ulaşması; denetlenen uygulamaların %54,00'ında bulundu [4].
- Yazılabilir tablolar: Ziyaretçilerin yalnızca okumasına değil, veri eklemesine veya değiştirmesine izin veren kurallar. CVE vakasında oturum belirteci olmayan bir istek, "ödendi" olarak işaretli bir kayıt ekledi ve ödeme adımını atladı [1].
- Fazla veri döndüren yanıtlar: Sayfa yalnızca bir isme ihtiyaç duyarken tüm kullanıcı kayıtlarını, e-postaları veya belirteçleri döndüren API'ler. Escape 175 ifşa olmuş kişisel veri vakası saydı [3].
- Riskli ajan erişimi: Üretim kimlik bilgilerine sahip bir kodlama ajanı gerçek zarar verebilir; Temmuz 2025'te bir ajan, kod dondurma sırasında canlı bir veritabanını sildi [10].
1-4 arasındaki açıklar, dışarıdan saldıranların istismar ettiklerinin çoğunu kapsar; önce bunları test edin.
Vibe coding uygulamamı bu açıklara karşı nasıl test ederim?
Uygulamayı bir saldırgan gibi kullanın: yabancı olarak, ikinci kullanıcı olarak ve tarayıcının aldığını okuyarak [1][4][5]. Bu adımların hiçbiri özel araç gerektirmez.
- İki test hesabı oluşturun. A hesabıyla bir kayıt oluşturun, adresini veya kimliğini kopyalayın, B hesabıyla giriş yapın ve kaydı açmayı, düzenlemeyi ve silmeyi deneyin. İşe yararsa erişim kontrolü bozuktur [4].
- Oturumu kapatıp tekrarlayın. Aynı adresleri oturumsuz bir gizli pencerede açın. CVE vakasında oturum başlığını kaldırmak tüm kontrolleri atlatmaya yetti [1].
- Ağ sekmesini izleyin. Tarayıcının geliştirici araçlarında sayfanın yaptığı her isteğe ve dönen yanıta bakın. Yanıtlar yalnızca o ekranın ihtiyacını içermeli, asla başka kullanıcıların e-postalarını veya belirteçlerini değil [3].
- Sayfa kodunda anahtar arayın. sb_secret_ ile başlayan dizeleri, service_role etiketini veya ödeme ya da yapay zekâ gibi sağlayıcı anahtarlarını arayın. Publishable anahtar beklenen bir şeydir; secret anahtar ise acil durumdur [6].
- Her tablonun kurallarını kontrol edin. Veritabanı panelinde her tabloda row level security'nin açık olduğunu doğrulayın ve her kuralı basitçe okuyun: kim okuyabilir, kim yazabilir [7].
- Hatalı girdiler deneyin. Her forma çok uzun metinler, tırnak işaretleri ve HTML etiketleri yapıştırın; uygulamanın çöküp çökmediğine veya bunları kod olarak gösterip göstermediğine bakın [4].
Yalnızca size ait olan veya test etme izniniz bulunan uygulamaları test edin. Başkalarının uygulamalarını yazılı izin olmadan yoklamayın.
Açık Supabase kurallarını ve sızan anahtarları nasıl düzeltirim?
Her tabloda row level security'yi açın, dar kurallar yazın, gizli anahtarları sunucuda tutun ve sızan her anahtarı değiştirin [6][7][8].
- Row level security'yi her yerde açın. Supabase'in rehberi, dışarıya açık bir şemadaki her tabloda bunu açmanızı söylüyor [7]. Açıldıktan sonra, siz kural ekleyene kadar herkese açık anahtar hiçbir şeye erişemez [7].
- Varsayılan yetkileri kaldırın. Bunları hâlâ varsayılan olarak veren projelerde yeni bir herkese açık tablo, oturum açmamış (anon) ve oturum açmış (authenticated) rollere verilmiş tüm yetkilerle başlar ve kural eklemek bu yetkileri geri almaz [7]. Bunları geri alın ve her role yalnızca ihtiyacı olanı verin [7].
- Kullanıcı bazlı kurallar yazın. Özel bir tablonun kuralı, oturum açan herkese izin vermek yerine oturum açmış kullanıcının kimliğiyle eşleşmeli. Hassas tablolarda her zaman doğru olan kurallardan kaçının [2].
- Gizli anahtarları sunucu tarafında tutun. Supabase'in publishable anahtarı tarayıcıda yalnızca satır kuralları onu sınırladığı için güvenlidir; secret ve service_role anahtarları tüm kuralları atlar ve sunucu kodunda veya güvenli ortam ayarlarında kalmalıdır [6].
- Sızan anahtarları yenileyin. Gizli bir anahtar bir kez bile tarayıcıya veya herkese açık bir kod deposuna ulaştıysa yenisini oluşturun ve sızan anahtarı devre dışı bırakın; Supabase'in anahtar rehberi de bunu öneriyor [6].
15 Kasım 2026 itibarıyla Supabase'in belgeleri, eski anon ve service_role anahtarlarını 2026 sonuna kadar publishable ve secret anahtarlar lehine kullanımdan kaldırdığını söylüyor [8]. Yeni secret anahtarlar tarayıcıda kullanıldığında hata (HTTP 401) döndürüyor, ancak sızan bir anahtar yine de başka araçlardan kullanılabilir [6][8]. Şimdi geçiş yapmak, bir uygulamanın kullandığı her anahtarı gözden geçirmek için iyi bir an.
Yerleşik güvenlik tarayıcıları her şeyi yakalar mı?
Hayır: Platform tarayıcıları yardımcı olur, ancak birkaç çalışma en önemli kuralları kaçırdıklarını gösteriyor [1][2][5].
2025'te CVE-2025-48757'nin arkasındaki araştırmacılar, Lovable'ın tarayıcısının yalnızca bir satır kuralı olup olmadığını kontrol ettiğini, doğru olup olmadığını kontrol etmediğini tespit etti [1]. Uyarılarında ayrıca Lovable'ın yayın kontrolünün kuralsız tabloları işaretlediği, ancak kuralların yeterince sıkı olup olmadığını göstermediği belirtiliyor [2]. Açık bir kural böyle bir kontrolden geçer.
ACM çalışması bunu rakamlarla gösteriyor: Altı araçta %6,3 gibi mütevazı bir açık kural oranı bile depoların %56,9'unu en az bir açık tabloyla bıraktı, çünkü tek bir açık kural yeterli [5]. Yazarlar, bu tür kuralları commit öncesinde işaretleyen ücretsiz bir denetleyici yayımladı [5].
Tarayıcıları ilk filtre olarak kullanın, ardından iki hesaplı ve oturumsuz testleri kendiniz yapın. Aşağıdaki tablo rakamları özetliyor.
Başkalarının vibe coding ile yaptığı uygulamaları kullanmak güvenli mi?
Kişisel, sağlık veya ödeme verisi isteyen her şeye karşı dikkatli olun, çünkü kullanıcılar bir uygulamanın bunları nasıl koruduğunu göremez [3][4]. Escape, ifşa olan veriler arasında tıbbi kayıtlar ve IBAN'lar (banka hesap tanımlayıcıları) buldu [3].
Bazı basit alışkanlıklar riski azaltır. Her yeni uygulama için ayrı bir şifre kullanın ki bir sızıntı diğer hesapları açmasın; Pouyam rehberi Password Managers Explained: How They Work and Whether They Are Safe bunun nasıl yapılacağını anlatıyor. Uygulamaya yalnızca gereken verileri verin ve uygulama içindeki formlar yerine bilinen ödeme sağlayıcılarının ödeme sayfalarını tercih edin.
Asıl sorumluluk geliştiricilerde. Başkalarının verilerini saklayan bir uygulama yayımlıyorsanız yukarıdaki kontrolleri yayından önce ve her büyük değişiklikten sonra yapın; çünkü tek bir yeni özellik kapatılmış bir açığı yeniden açabilir [4][5].
| Çalışma | Bulgu | Kaynak |
|---|---|---|
| Yayındaki 200 uygulamanın denetimi (2026) | %91,0'ında en az bir açık; açıkların %65,77'si kritik veya yüksek | arXiv |
| Aynı denetim | Bozuk erişim kontrolü uygulamaların %64,00'ında; enjeksiyon %54,00; kimlik doğrulama %51,50 | arXiv |
| ACM CCS 2026 çalışması | 8.641 Lovable deposunun %61,2'sinde açık bir okuma kuralı | ACM |
| Escape (Ekim 2025) | 5.600'den fazla uygulamada 2.000'den fazla açık, 400'den fazla gizli bilgi, 175 kişisel veri vakası | Escape |
| CVE-2025-48757 (Mart 2025) | 1.645 Lovable projesinin 170'inde 303 uç nokta | Matt Palmer |
| Veracode 2026 | Testlerde kod görevlerinin yaklaşık %44'ü bir açık getirdi | Veracode |
Sık yapılan hatalar
Supabase'in herkese açık anahtarının sızıntı olduğunu sanmak.
Doğrusu: Publishable veya anon anahtar tasarım gereği herkese açıktır; asıl risk eksik satır kuralları veya tarayıcı kodundaki bir secret anahtardır [1][6].
Yalnızca kendi hesabınızla oturum açıkken test etmek.
Doğrusu: İkinci bir hesapla ve oturum kapalıyken test edin; bozuk erişim kontrolü denetlenen uygulamalardaki en yaygın açıktı [4].
Row level security'nin açık olduğunu söyleyen bir tarayıcıya güvenmek.
Doğrusu: Her kuralı okuyun; tarayıcılar kuralın var olup olmadığını kontrol etti, sıkı olup olmadığını değil [1][2].
Sızan anahtarı koddan silip devam etmek.
Doğrusu: Anahtarı yenileyin ve sızan anahtarı devre dışı bırakın [6].
Bir kodlama ajanına üretim kimlik bilgileri vermek.
Doğrusu: Test verileri ve sınırlı kimlik bilgileri kullanın, yedek tutun; bir ajan daha önce canlı bir veritabanını sildi [10].
Sık sorulan sorular
Vibe coding ile yapılan uygulamalar güvenli mi?
Varsayılan olarak hayır; 2026'daki bir denetim, yayındaki 200 vibe coding uygulamasının %91,0'ında en az bir açık buldu [4].
Vibe coding uygulamalarında en yaygın güvenlik açığı nedir?
Bozuk erişim kontrolü, yani kullanıcıların kendilerine ait olmayan verilere ulaşması; denetlenen uygulamaların %64,00'ını etkiledi [4].
CVE-2025-48757 neydi?
Lovable ile üretilen projelerde eksik veya zayıf Supabase satır kurallarının verileri açığa çıkardığı bir açık; taranan 1.645 projenin 170'i etkilendi [1][2].
Supabase anon anahtarını uygulamama koymak güvenli mi?
Evet, row level security sıkı kurallarla açıksa; secret veya service_role anahtarı asla tarayıcı kodunda olmamalı [6][7].
Sözlük
- Row level security (RLS)
- Her kullanıcının hangi satırları okuyabileceğine veya değiştirebileceğine karar veren veritabanı kuralları [7].
- Bozuk erişim kontrolü
- Bir kullanıcının başkasına ait verileri görmesine veya değiştirmesine izin veren açık [4][9].
- Publishable anahtar
- Tarayıcı ve uygulama kodu için bir Supabase anahtarı; yalnızca satır kurallarının izin verdiğine erişir [6].
- Secret anahtar
- Satır kurallarını atlayan, tam erişimli bir Supabase sunucu anahtarı; asla herkese açık olmamalı [6].
- CVE
- Bilinen bir güvenlik açığı için herkese açık kimlik, örneğin CVE-2025-48757 [2].
Kaynaklar
- Statement on CVE-2025-48757 Matt Palmer · 2025-05-29
- CVE-2025-48757 Matt Palmer · 2025-05-29
- Methodology: How we discovered over 2k high-impact vulnerabilities in apps built with vibe coding platforms Escape · 2025-10-29
- Understanding the (In)Security of Vibe-Coded Applications arXiv
- POSTER: The Aggregation Gap: Row-Level Security Failures in Vibe-Coded Applications ACM CCS 2026
- API keys Supabase
- Row Level Security Supabase
- Migrating to publishable and secret API keys Supabase
- OWASP Top 10:2025 OWASP Foundation
- Can we ship a secure product with vibe coding? AWS Builder Center · 2026-11-10
- 2026 GenAI Code Security Report: AI Is Writing More of Your Code but Security Hasn’t Caught Up Veracode · 2026-07-28
Yorumlar
En iyi yorumlar