YAŞ GRUBUNA GÖRE ÜRÜN DOĞRULAMA
Kodu yapay zekâ yazdı. Kimsenin kullanabildiğini kontrol eden olmadı.
Cotesty uygulamanızı önce kullanıcılarınızın yaşındaki yapay zekâ personalarıyla, sonra aynı yaştaki gerçek testçilerle kullanır. Bozuk olan her şey tek raporda.
14 · Deniz, sadece telefon, kart yok
- KRİTİKÖdeme, fatura için 14 yaşındaki birinden yaş doğrulaması ve veli yolu olmadan kimlik numarası alıyor.
- KRİTİKKartım yok. Kapıda ödeme, sonra ödeme, veliyle ödeme yok. Akış, 18 yaş altındaki her müşteri için burada bitiyor.
- KRİTİKİstemci paketi Supabase anon anahtarını taşıyor ve orders tablosu kimlik doğrulaması olmadan yanıt veriyor. Tablodaki her ad, kimlik numarası ve telefon herkese açık.
3 kri̇ti̇k · 4 yüksek · Tam raporda 15 bulgu
35 · Ece, ileri kullanıcı, hızlı gezer
- KRİTİKİstemci paketi Supabase anon anahtarını taşıyor ve orders tablosu kimlik doğrulaması olmadan yanıt veriyor. Tablodaki her ad, kimlik numarası ve telefon herkese açık.
- YÜKSEKAydınlatma metni ve kampanya izni tek bir zorunlu kutuda. Bu şekilde alınan rıza özgür iradeyle verilmiş sayılmaz.
- YÜKSEK450 TL'lik hediye paketi, ekranın altında, 12px boyutunda ve önceden seçili. Toplam hiçbir bildirim olmadan değişiyor. Bu bir dönüşüm kazancı değil, iade ve güven maliyeti.
1 kri̇ti̇k · 3 yüksek · Tam raporda 15 bulgu
68 · Hüsamettin, ilk internet siparişi
- KRİTİKİki parmakla büyütme çalışmıyor. user-scalable=no tanımlı. Tek satır işaretleme, kullandığım tek erişilebilirlik ayarını iptal ediyor.
- KRİTİKBeden çipleri 32 x 28px, aralar 8px. Üç dokunuşum yanlış bedene gidiyor. M'yi hedeflerken iki kez L seçiyorum, seçili olduğunu gösteren tek işaret arka plan rengi.
- KRİTİKYüzde 200 sistem yazısında alan etiketleri büyümüyor. Hangi alanın kimlik numarası istediğini okuyamıyorum. Telefonumu kimlik numarası alanına yazıyorum.
9 kri̇ti̇k · 3 yüksek · Tam raporda 15 bulgu
DEMO
Aynı uygulama. Üç yaş. Farklı hatalar.
Bir Cotesty ajanının, aynı kasıtlı olarak bozuk mağazada üç farklı insan gibi alışveriş yapmasını izleyin. Mağaza hiç değişmiyor. Neyin bozulduğu tamamen onu kimin kullandığına bağlı.
Ajan günlüğü · 14 · Deniz
3 kri̇ti̇k · 4 yüksek · 1 orta
Ajan günlüğü · 35 · Ece
1 kri̇ti̇k · 3 yüksek · 3 orta · 3 düşük
Ajan günlüğü · 68 · Hüsamettin
9 kri̇ti̇k · 3 yüksek
Test henüz başlamadı.
Ajan mağazayı telefonda açıyor, seçtiğiniz persona gibi alışveriş yapıyor ve her bulguyu tam çarptığı anda buraya yazıyor.
| Hata | 14 Deniz 14 yaşında, sadece telefon, ödeme kartı yok, bir forma sabrı yaklaşık 20 saniye | 35 Ece 35 yaşında, ileri kullanıcı, göz gezdirir, fiyata duyarlı, kalıpları tanır | 68 Hüsamettin 68 yaşında, ilk internet siparişi, okuma gözlüğü, tek başparmak, sistem yazı boyutu yüzde 200, hatadan dönme güveni düşük |
|---|---|---|---|
| A11Y-TAP-01Beden çipleri 32 x 28px | Görmedi | DÜŞÜK 32 x 28px'lik bir beden çipinde bir kez ıskaladım, saniyenin altında toparladım. Hedef 44px alt sınırın altında ama nişanım bunu telafi ediyor. | KRİTİK Beden çipleri 32 x 28px, aralar 8px. Üç dokunuşum yanlış bedene gidiyor. M'yi hedeflerken iki kez L seçiyorum, seçili olduğunu gösteren tek işaret arka plan rengi. |
| A11Y-TXT-02Etiketler 12px, 2.3'e 1 kontrast | Görmedi | DÜŞÜK Alan etiketleri 12px ve 2.3'e 1 kontrastta. Onları okuyarak değil, alan sırasından tahmin ediyorum. | KRİTİK Yüzde 200 sistem yazısında alan etiketleri büyümüyor. Hangi alanın kimlik numarası istediğini okuyamıyorum. Telefonumu kimlik numarası alanına yazıyorum. |
| A11Y-ZOOM-03Parmakla yakınlaştırma kapalı | Görmedi | Görmedi | KRİTİK İki parmakla büyütme çalışmıyor. user-scalable=no tanımlı. Tek satır işaretleme, kullandığım tek erişilebilirlik ayarını iptal ediyor. |
| A11Y-KBD-04Beden seçici klavyeyle erişilemez | YÜKSEK Beden seçici, onclick'li bir div. Tab tuşu onu tamamen atlıyor. Klavye ve anahtar kullanıcıları beden seçemiyor, yani hiç sipariş veremiyor. | YÜKSEK Beden seçici, onclick'li bir div. Tab tuşu onu tamamen atlıyor. Klavye ve anahtar kullanıcıları beden seçemiyor, yani hiç sipariş veremiyor. | YÜKSEK Beden seçici, onclick'li bir div. Tab tuşu onu tamamen atlıyor. Klavye ve anahtar kullanıcıları beden seçemiyor, yani hiç sipariş veremiyor. |
| UX-FORM-05Beş zorunlu alan, otomatik doldurma yok | YÜKSEK Otomatik doldurma olmadan beş zorunlu alan. Üçüncü alanda bırakıyorum. Bir giysi siparişi, bedenim onaylanmadan kimlik numaramı istememeli. | Görmedi | KRİTİK Telefon alanı type=text, harf klavyesi açılıyor. On bir rakamı tek tek yazıyorum. Beş dakikalık stok rezervasyonunun iki dakikasını harcadım. |
| UX-ERR-06Hatalar sadece kırmızı çerçeve | Görmedi | ORTA Kırmızı çerçeve, mesaj metni yok. Hangi alanın hatalı olduğunu bulmak için yukarı kaydırıyorum. On bir saniye arama. | KRİTİK Gönderdiğimde ekranda hiçbir şey değişmiyor. Sitenin bozuk olduğunu düşünüp duruyorum. Hata metni yok ve odak hiçbir zaman soruna taşınmıyor. |
| UX-BTN-07Sahte pasif buton, 1.2'ye 1 | ORTA Buton aktif görünüyor ama değil. Bana nedenini söyleyen hiçbir şey yok. Dokunmayı sürdürüyorum. | Görmedi | KRİTİK Butonun pasif olduğunu göremiyorum. Gri üzerine beyaz, 1.2'ye 1, benim için görünmez. Asla yanıt vermeyecek bir ekranı bekliyorum. |
| UX-TIME-08Stok sayacı, 11px, sessiz doluyor | Görmedi | ORTA Köşede 11px stok geri sayımı, hiçbir uyarı durumu yok. Başka sekmede tuttuğum ürünü kaybettim ve hiç bildirim almadım. | KRİTİK Beş dakikalık stok rezervasyonu ben hâlâ formu doldururken doluyor. Ürünüm sessizce sepetten çıkıyor. Seçimimi unutmuş bir ekrana dönüyorum. |
| CONV-DARK-09Ekran altında önceden seçili 450 TL ek satış | Görmedi | YÜKSEK 450 TL'lik hediye paketi, ekranın altında, 12px boyutunda ve önceden seçili. Toplam hiçbir bildirim olmadan değişiyor. Bu bir dönüşüm kazancı değil, iade ve güven maliyeti. | YÜKSEK Ekranın altına kaydırmıyorum. 450 TL'lik hediye paketi seçili kalıyor ve toplam hiçbir bildirim olmadan değişiyor. Hiç görmediğim bir şey için ücretlendiriliyorum. |
| LEGAL-CONSENT-10Rıza pazarlamayla paketlenmiş | YÜKSEK Sipariş vermek için kampanya e-postalarını kabul etmek zorunlu. 14 yaşındayım. Site yaşımı hiç sormuyor ve bu rızayı veremem. | YÜKSEK Aydınlatma metni ve kampanya izni tek bir zorunlu kutuda. Bu şekilde alınan rıza özgür iradeyle verilmiş sayılmaz. | Görmedi |
| UX-PAY-11Sadece kart, maskesiz, açıklamasız CVV | KRİTİK Kartım yok. Kapıda ödeme, sonra ödeme, veliyle ödeme yok. Akış, 18 yaş altındaki her müşteri için burada bitiyor. | Görmedi | KRİTİK CVV, hiçbir açıklama olmadan üç harf. Tahmin etmek yerine duruyorum. Emin olmadığım kart bilgilerini girmem. |
| UX-LANG-12Jargon başlık: Sevkiyat künyesi | YÜKSEK Teslimat adımının başlığı Sevkiyat künyesi. Bana hiçbir şey ifade etmiyor. Hâlâ tişört mü alıyorum yoksa evrak mı dolduruyorum bilmiyorum. | Görmedi | YÜKSEK Sevkiyat künyesi, bir ad ve adres alanı gibi değil, bir lojistik belgesi gibi okunuyor. Devam etmeden önce duraksıyorum. |
| UX-CONF-13Sessiz 6 saniyelik bekleme, onay yok | Görmedi | DÜŞÜK Altı saniye metinsiz bir bekleme göstergesi, sonra başarı. Hiçbir yerde onay kanalı vaat edilmiyor. | Görmedi |
| SEC-KEY-14Supabase anon anahtarı açıkta, orders tablosu herkese açık | KRİTİK İstemci paketi Supabase anon anahtarını taşıyor ve orders tablosu kimlik doğrulaması olmadan yanıt veriyor. Tablodaki her ad, kimlik numarası ve telefon herkese açık. | KRİTİK İstemci paketi Supabase anon anahtarını taşıyor ve orders tablosu kimlik doğrulaması olmadan yanıt veriyor. Tablodaki her ad, kimlik numarası ve telefon herkese açık. | KRİTİK İstemci paketi Supabase anon anahtarını taşıyor ve orders tablosu kimlik doğrulaması olmadan yanıt veriyor. Tablodaki her ad, kimlik numarası ve telefon herkese açık. |
| LEGAL-MINOR-15Kimlik no toplanıyor, yaş kapısı yok | KRİTİK Ödeme, fatura için 14 yaşındaki birinden yaş doğrulaması ve veli yolu olmadan kimlik numarası alıyor. | ORTA Fatura için kimlik numarası toplayan bir ödeme akışında yaş kapısı yok. | Görmedi |
Çalışma karnesi
| 14 · Deniz | 3 kri̇ti̇k4 yüksek1 orta0 düşük |
|---|---|
| 35 · Ece | 1 kri̇ti̇k3 yüksek3 orta3 düşük |
| 68 · Hüsamettin | 9 kri̇ti̇k3 yüksek0 orta0 düşük |
F09, 35 ve 68 yaşında yakalanıyor ama 14'te hiç yakalanmıyor. F12, 14 ve 68'de yakalanıyor, 35'te gözden kaçıyor. F15, 14 yaşında kritik, 68'de hiç yok. Tek persona ile test etmek, testin üçte birini yapmaktır.
Bu, tek bir örnek mağaza ve on beş kasıtlı hataydı. Sizinkinde bizim koymadığımız hatalar var.
Ne biliyoruz, kaynağıyla birlikte
%45
Yapay zekânın ürettiği kodun yaklaşık yüzde 45'i güvenlik testlerinden geçemiyor. Modeller çalışan kod yazmakta çok iyileşti ama bu oran neredeyse yerinde saydı.
Veracode, Spring 2026 GenAI Code Security Update Kaynağa git
Geçme oranı tek bir sayı değil
Aynı çalışmada modeller cross-site scripting kontrollerinden sadece yüzde 15, log injection'dan yüzde 13 oranında geçiyor. Buna karşılık SQL injection'da yüzde 82, zayıf kriptoda yüzde 86. Veri akışını takip etmeyi gerektiren açıklar kalıyor. Kalıp eşleştirmeyle yakalanabilenler geçiyor.
Veracode, Spring 2026 GenAI Code Security Update Kaynağa git
Bu, yapay zekâyla kod yazmaya karşı bir argüman değil
Modeller çalışan kod yazıyor. Hem de hızlı. Sorun yazma tarafında değil. Not verme tarafında. Kodunuzu yazan şey, kodunuzu değerlendiren şey olamaz.
Kodu yapay zekâ yazdı. Kimsenin kullanabildiğini kontrol eden olmadı.
Cotesty uygulamanızı önce kullanıcılarınızın yaşındaki yapay zekâ personalarıyla, sonra aynı yaştaki gerçek testçilerle kullanır. Bozuk olan her şey tek raporda.
Bu sayfadaki her istatistik birincil kaynağına bağlanır. Raporlarımızda da aynı standardı uyguluyoruz.


