Sıfırdan Kodlama Bilmeden Yapay Zeka ile Uygulama Geliştirmek Mümkün Mü?

ENES ATEŞ
4 min readJan 2, 2025

--

Teknoloji her geçen gün çıta yükseltiyor ve yazılım dünyası da bu yeniliklere ayak uyduruyor (kimimiz işimizi elimizden alacak endişesi ile karşı durup bu deneyime katılmasa da). Yapay zeka (YZ) platformları sayesinde artık yazılım bilmeyen birinin bile kendi uygulamasını geliştirmesi mümkün. Harika değil mi? Ama durun, hemen sevincimize kapılmadan bir gerçeği gözden kaçırmayalım: Bu kolaylık, beraberinde ciddi güvenlik sorunlarını da getirebiliyor.

Kodlama Bilmeden Uygulama Geliştirmek Mümkün Mü?

Evet, mümkün! YZ destekli araçlar artık herkese uygulama yapma şansı veriyor. Peki, neler yapabiliyoruz?

Öncelikle bu akışı ve deneyimi yaşamak için bir deney yapmaya karar verdim. Eşim ile birlikte Yılbaşından önce “acaba hiç bilmediğimiz bir programlama dili, framework ile aklımızdaki çok da karmaşık olmayan bir projeyi kodlatabilir miyiz?” diye düşündük. Elimizdeki en iyi alternatif topluluklar, twitter ve diğer sosyal medya platformlarından adını sıklıkla duyduğumuz Cursor ile bu süreci deneyimlemek istedik. Cursor, ilk defa kullanacaklar için 2 hafta pro sürümü deneyimle fırsatı da sunması diğer bir tercih sebebimiz oldu.

Proje fikri ararken aklımıza herkesin bir yılbaşı ağacı olsa ve bu ağacın bir paylaşılabilir linki ile arkadaşlarımızdan bizi mutlu edecek yılbaşı dilekleri duysak diye düşündük. Bu projeyi de geliştirirken hiç bilmediğimiz NextJs ile geliştirme yapmayı yapay zekanın da tavsiyesi ile karar verdik. Cursor ile bu projeyi kodlayacak ve yazılım bilgimiz bir kenara Cursor bize nasıl bir yol gösterirse süreci götürecektik — sonuçta sıfır kodlama bilgisine sahibiz, patron biz olsak da kodu yazan Cursor-.

Bu deneyimde elde ettiğimiz tecrübeler ise şunlar oldu;

Kolay Arayüz: Kod yazmayı bilmiyorsunuz diye endişelenmeyin. Cursor arayüzü , çocuk oyuncağı gibi.

Kullanım Kolaylığı: Verileri analiz eden, öneriler sunan ve agentlar ile sadece accept tıklayarak kodlama çok daha kolay.

İntegrasyon Kolaylığı: Diğer popüler uygulamalarla entegre olabilen sistemler sayesinde, “Acaba bu çalışır mı?” diye düşünmek zorunda kalmıyorsunuz. Konsol açayım, paketi bulayım, çalıştırayım, hata var mı? doğru kuruldu mu? gibi sorularımız hiç olmadı cursor bizim yerimize halletti.

Bunlar olumlu deneyimlerdi yani standart bir yazılım bilmeyen kullanıcıyı oldukça memnun eden özellikler ama buradaki önemli detay şu: Bu platformlar daha çok basit ve karmaşık olmayan projeler için uygun. Yani “Dünyanın en havalı sosyal medya uygulamasını yapayım!” demeden önce biraz daha düşünmek gerekebilir.

Yapay Zeka ile Güvenlik Riskleri

Olumlu yanları ile cezbetse de güzel bir uygulama yapabilmek kadar onu güvende tutmak da çok önemli. Yapay zeka ve no-code platformlar, yazılım bilmeyenlere kolaylık sağlıyor ama maalesef “Kolay olsun” derken bazen güvenlik işini savsaklayabiliyorlar. Hadi biraz detaylara inelim:

1. Şifreleme Eksiklikleri

Bu tarz platformlar, verilerinizi korumak için otomatik kararlar alıyor ama bu kararlar her zaman en iyisi olmayabiliyor. Örneğin:

  • Şifreler yetersiz algoritmalarla saklanıyor olabilir.
  • Veri aktarımında HTTPS gibi güvenli protokoller kullanılmayabilir.

2. Kullanıcı Doğrulama Sorunları

Kullanıcıların kimliğini doğrulamak, uygulamanızın temel güvenlik unsurlarından biridir. Ama bu platformlar bazen bu işi ciddiye almayabiliyor. Şöyle ki:

  • Kimlik bilgilerini çalan bir siber korsan, güvenlik sisteminizi kolayca alt edebilir.
  • Oturum açma mekanizmaları zayıf olabilir ve bu da başka riskler doğurabilir.

Örneğin bizim geliştirdiğimiz Yılbaşı ağacı projesinde login ve register işlemlerinde JWT kullanmak yerine Local Storage’da tokenlar tutarak işlemleri gerçekleştirdi.

3. Veritabanı Güvenlik Açıkları

Veritabanı güvenliği, uygulamanızın kalbidir. Ama bazı platformlar bu konuda pek de hassas davranmıyor:

  • SQL enjeksiyonu gibi yaygın siber saldırılara karşı savunmasız olabilir.
  • Veriler, düz metin olarak saklanabilir ve bu da büyük bir risk.

Yine yılbaşı ağacı projesinde gözlemlediğim bir diğer sorunlardan birisi. Inputlardan gelen minimum ve maksimum karakter sınırlarının olmaması gelen dataları kontrol etmeden db’ye yazması hem SQL injection sorunlarına hem de db sorunlarına sebep olabiliyor.

4. Otomatik Karar Alma Mekanizmaları

YZ, geliştiricilere yardımcı olmak için tasarlanmış ama bazen yanlış kararlar alabilir. Mesela:

  • Sistemin gereksiz izinler vermesi.
  • Veri hırsızlığına olanak tanıyan açıklı bir API.

Yaşadığımız bir başka deneyim ise kafasına göre endpointlere izinler verip kaldırması. Örneğin; misafir kullanıcılar yılbaşı ağacı sahibine dileklerini iletirken tarayıcı network alanında ben istememe rağmen yılbaşı ağacı sahibine gelmiş tüm dilekleri gösteriyordu. Aslında yapması gereken yılbaşı ağacı sahibine ait dilek sayısını db’de count değerinde tutması gerekirken tüm dilekleri getirerek ciddi bir güvenlik açığına sebep oldu ve bunu fark etmedi bile :) Üstelik tüm geliştirmeler bittikten sonra varsa güvenlik sorunları fixler misin dememe rağmen.

Belki burada şu denilebilir, standart bir kullanıcı işlemleri bittiğinde güvenlik açıkları var mı? veya düzeltir misin? diyebilir. Bizde projeyi geliştirirken bu şekilde Cursor’a talepte bulunduk. Güvenlik açıkları varsa düzelt şeklinde bir öneride çoğu sorunu görmezden gelse de env kullanmam gerektiğini, projeyi deploy alacağım yerdeki dosya izinlerine bakmamı ve en son da olsa JWT kullanmayı akıl edebildi. Peki yazılım bilgisi olmayan birisi tüm bunları nasıl kontrol edebilir ? Güvenlik durumlarının kaçını sorarak sorun olmadığını teyit ettirebilir?

Tüm bu geliştirmeler bittikten sonra Cursor’a neden min ve max input value kontrolü eklemedin? diye sorduğumda standart olarak “evet, haklısınız. Bu bir güvenlik problemidir işte düzeltiyorum.” gibi yanıtlar verdi.

Sonuç

Yapay zeka ile uygulama geliştirme, yazılım bilmeyenler için büyük bir kolaylık sağlıyor. Ancak güvenlik detaylarına dikkat etmezseniz bu kolaylık başınıza iş açabilir.

Evet, kodlama bilmeyen biri rahatça basit bir uygulama yapabilir ama uygulamanın güvenliğini sağlamak için uzman yardımı alınması çok önemli.

Unutmayın: Kolay geliştirilen bir uygulama, kolayca sınan bir kaledir. Bu yüzden adımlarınızı dikkatle atın!

Son olarak, yapay zeka yazılımcıların işini elinden alacak mı diye endişelenmek yerine, bu gelişmelere adapte olmayı düşünmeliyiz. Yapay zekayı süreçlerimize dahil ederek işleri hızlandırabilir, kolaylaştırabilir ve daha verimli bir çalışma düzeni oluşturabiliriz. Önemli olan, teknolojiyi nasıl kullandığımız ve ondan en iyi şekilde nasıl faydalanabileceğimizi keşfetmek!

Makalede bahsedilen Yılbaşı ağacı uygulaması: https://mutluyillar.netlify.app/

NOT: Siber güvenlik uzmanı değilim sadece çok farklı projelerde çalışmış, bu projelerden farklı deneyimler edinmiş ve bu deneyimlere göre çoğu yazılımcının bilebileceği veya araştırma ile karşısına çıkacak güvenlik sorunlarına değindim. Ayrıca bahsedilen yapay zeka ile sıfırdan kodlama deneyimi Cursor kullanılarak yapılmıştır. Sorunlar farklı uygulamalarda farklı sorunlara veya çözümlere sebep olabileceği unutulmamalı.

Bu yazıda Cursor ile #reklam veya #işbirliği yoktur tamamen yaşadığım deneyimlerimi içermektedir.

--

--

ENES ATEŞ
ENES ATEŞ

Written by ENES ATEŞ

I am an entrepreneur and PHP(Laravel/Symfony) Developer

No responses yet