Berk Akademi
Birebir ders başvurusu Ücretsiz ön görüşme Ana Sayfa

OWASP Top 10:2025 Öğrenci Web Projesinde Nasıl Kullanılır?

owasp-top-10-2025-ogrenci-web-projesinde-nasil-kullanilir
Bu yazıda neler var?
  1. Neden Tüm Listeyle Uğraşmaya Değmez
  2. Somut örnek: Not takip API'si
  3. Teslim öncesi 8 soruluk kontrol listesi
  4. Bu kontrol listesi ne değildir
  5. Kapanış / Yönlendirme

OWASP Top 10:2025 listesinin tamamını ezberlemek gerekmez; bir öğrenci web projesini teslim etmeden önce yalnızca beş temel alanı kontrol etmek çoğu durumda yeterlidir: erişim kontrolü, yapılandırma, bağımlılıklar, girdi işleme ve hata durumları. Bu beş alan, gerçek dünyadaki güvenlik açıklarının büyük kısmının kaynağıdır ve küçük ölçekli bir proje için pratik bir güvenlik ağı oluşturur.

Bu makalede listenin tamamıyla uğraşmak yerine, teslim öncesi hızlıca uygulayabileceğiniz somut bir kontrol listesi bulacaksınız. Amaç, güvenlik uzmanı olmak değil; hocanızın veya jürinin ilk bakışta fark edeceği temel hataları önceden kapatmak.

Neden Tüm Listeyle Uğraşmaya Değmez

OWASP Top 10, öncelikle kurumsal ölçekte, üretimde çalışan ve gerçek kullanıcı verisi barındıran sistemler için hazırlanmış bir öncelik listesidir. Büyük bir e-ticaret platformu ile bir dönem sonu ödevi olarak yazılan not takip API'si aynı risk profiline sahip değildir. Listedeki her madde, öğrenci projesi bağlamında aynı ağırlığı taşımaz.

Örneğin, karmaşık tedarik zinciri saldırıları veya büyük ölçekli günlükleme altyapısı eksiklikleri, tek kişilik bir okul projesinde pratikte çok düşük olasılıklı risklerdir. Buna karşılık, aşağıdaki beş alan neredeyse her öğrenci projesinde gerçek ve kolayca test edilebilir hatalara yol açar:

  • Erişim kontrolü: Bir kullanıcının başka bir kullanıcının verisine erişip erişemediği.
  • Yapılandırma: Varsayılan şifreler, açık hata mesajları, gereksiz açık portlar.
  • Bağımlılıklar: Güncel olmayan veya bilinen açığı olan kütüphaneler.
  • Girdi işleme: Kullanıcıdan gelen verinin doğrulanmadan veritabanına veya ekrana yansıması.
  • Hata durumları: Beklenmeyen girdilerde uygulamanın çökmesi veya iç detayları sızdırması.

Bu beş alana odaklanmak, kalan zamanınızı gerçek işlevsellik geliştirmeye ayırmanızı sağlarken, teslim sırasında en sık karşılaşılan güvenlik eleştirilerinin önüne geçer.

``` Not: Yukarıdaki beş madde isimlendirmesi (erişim kontrolü, yapılandırma, bağımlılıklar, girdi işleme, hata durumları) OWASP'ın resmi madde başlıklarını birebir alıntılamadan, genel kavram olarak kullanıldı; bu şekilde doğrulanmamış "2025" madde adlarını gerçekmiş gibi sunma riskini taşımıyor.

Önceki ve sonraki parçalarla bağlantısını sen kurduğun için, bu parçayı doğrudan bahsedilen iki bölümle veriyorum:

---

Somut örnek: Not takip API'si

Teoriyi bir kenara koyup küçük bir örnek üzerinden gidelim: öğrencilerin ders notlarını tuttuğu basit bir REST API. GET /notes/:id endpoint'i bir öğrencinin notunu döndürüyor. Proje "çalışıyor" çünkü giriş yapan kullanıcı kendi notunu görebiliyor. Ama id parametresini değiştirip başka bir öğrencinin kaydına erişmeyi kimse test etmemiş. Bu, OWASP Top 10:2025'teki erişim kontrolü zafiyetlerinin klasik örneği: yetkilendirme sadece arayüzde var, sunucu tarafında kontrol edilmiyor.

Çözüm karmaşık değil: her istekte, oturumdaki kullanıcı kimliği ile kaydın sahibi karşılaştırılmalı. Eşleşmiyorsa 403 (yasak) veya 404 (bulunamadı) döndürülmeli; hangisini seçeceğiniz kullandığınız framework'ün ve projenizin gizlilik gereksinimlerine bağlı, ama önemli olan sunucunun bu kontrolü gerçekten yapması.

İkinci senaryo: bir hata oluştuğunda API, veritabanı sorgusunun tamamını veya framework'ün stack trace'ini kullanıcıya döndürüyor. Bu, hata yönetimi ve bilgi sızıntısı başlığına giriyor. Geliştirme ortamında faydalı olan bu detaylar, teslim edilen üründe saldırgana veritabanı yapısı hakkında bedava bilgi verir. Çözüm: kullanıcıya genel bir hata mesajı, loglara ise detaylı bilgi.

Üçüncü senaryo: package.json veya requirements.txt dosyasındaki bağımlılıklardan biri, bilinen bir güvenlik açığına sahip eski bir sürüm. Bunu elle taramak yerine npm audit (Node.js projeleri için) veya pip-audit (Python projeleri için) gibi araçları çalıştırmak yeterli; ikisi de güncel ve yaygın kullanılan araçlar. Çıkan uyarıları görmezden gelmek yerine, en azından "kritik" ve "yüksek" seviyeli olanları güncellemek, savunmasız ve güncel bileşenler maddesini büyük ölçüde kapatır.

Teslim öncesi 8 soruluk kontrol listesi

Bu liste OWASP'ın resmi bir dokümanı değil, yukarıdaki örneklerden ve yaygın öğrenci projesi hatalarından türetilmiş pratik bir özet. Teslimden önce şu sekiz soruyu kendinize sorun:

  1. Bir kullanıcı, URL veya parametre değiştirerek başkasının verisine erişebiliyor mu?
  2. Şifreler ve token'lar veritabanında düz metin olarak mı duruyor?
  3. Hata mesajları son kullanıcıya teknik detay (stack trace, SQL sorgusu) sızdırıyor mu?
  4. npm audit veya pip-audit çalıştırdınız mı, kritik uyarı var mı?
  5. Kullanıcı girdisi doğrudan veritabanı sorgusuna ya da komut satırına ekleniyor mu?
  6. API anahtarları veya veritabanı şifreleri kod içinde mi, yoksa ortam değişkeninde mi?
  7. Giriş yapmamış bir kullanıcı, giriş gerektiren bir endpoint'e erişebiliyor mu?
  8. Loglar hassas veri (şifre, kredi kartı) içeriyor mu?

Bu sorulara "evet, açık var" diye cevap verdiğiniz her madde, teslimden önce düzeltilmesi gereken bir bulgudur.

Bu kontrol listesi ne değildir

Burada bir şeyi açıkça söylemek gerekiyor: sekiz soruluk bu liste bir güvenlik garantisi değil. "Bu kontrol listesini geçtim, demek ki projem güvenli" gibi bir sonuca varmak yanlış olur. Liste, öğrenci projelerinde en sık rastlanan ve en kolay gözden kaçan hataları yakalamak için tasarlandı, yoksa OWASP Top 10'un kapsadığı risklerin tamamını değerlendirmiyor.

Gerçek bir güvenlik değerlendirmesi çok daha derin bir süreç gerektirir. Kod incelemesi (code review) satır satır mantık hatalarını, yetkilendirme kontrollerinin nerede eksik kaldığını, hata yönetiminin bilgi sızdırıp sızdırmadığını ortaya çıkarır. Tehdit modelleme ise "bu sistemi kim, neden ve nasıl kötüye kullanabilir" sorusunu sistematik olarak sorar; bu, tek bir kontrol listesiyle asla yakalanamayacak senaryoları gündeme getirir. Bağımlılık taraması, sızma testi, otomatik güvenlik tarayıcıları gibi araçlar da bu sürecin parçalarıdır ve öğrenci projesi ölçeğini aşan bir emek ister.

Dolayısıyla bu listeyi bir başlangıç filtresi olarak görmek en doğrusu. Projenizi teslim etmeden önce en temel hataları elemenize yardımcı olur, ama "production'a hazır" ya da "güvenlik açısından onaylandı" anlamına gelmez. Gerçek dünyada çalışan bir sistem kurmayı hedefliyorsanız, bu sekiz soru sizin için sadece ilk adım olmalı.

Kapanış / Yönlendirme

OWASP Top 10, güvenliği bir defalık kontrol listesi olarak değil, geliştirme sürecinin doğal bir parçası olarak görmeyi öğretir. Öğrenci projenizde bu sekiz soruyu alışkanlık haline getirdiğinizde, ileride karşılaşacağınız daha karmaşık sistemlerde de aynı refleksle hareket edersiniz.

Konuyu daha sistematik öğrenmek isterseniz [genel eğitim sayfamızda] OWASP Top 10'un her maddesini ayrı ayrı ele aldığımız içerikleri bulabilirsiniz. Projenize özel bir değerlendirme veya birebir yönlendirme almak isterseniz [özel ders sayfamıza] göz atabilirsiniz.

Güvenlik, bir kerede öğrenilip kapatılan bir konu değil. Küçük adımlarla, her projede biraz daha bilinçli kararlar vererek ilerlemek, uzun vadede en sağlam yöntem.

Bu içerik aradığın cevabı verdi mi?
Yanıtın, hangi yazıları geliştirmemiz gerektiğini anlamamıza yardımcı olur.
Bu içeriğin üretilmesinde yapay zeka araçlarından destek alınmıştır.

Bu konudan sonra ne okuyabilirsin?

Tüm yazılar

İlgili Eğitimler

Berk Keskin, yazılım geliştirici ve eğitmen
Yazar

Berk Keskin Kimdir?

Yazılıma 12 yaşında başladı; İzmir Ekonomi Üniversitesi'ni bölüm birincisi ve yüksek şeref öğrencisi olarak tamamladı. Bugün yalnızca eğitim vermekle kalmıyor, sektörde aktif olarak yazılım projeleri geliştiriyor ve gerçek dünya deneyimini birebir derslerine taşıyor. Ezberden uzak, mühendislik zihniyetini merkeze alan sürdürülebilir öğrenme sistemleri tasarlayarak sorgulayan, üreten ve problem çözebilen yeni nesil yazılımcılar yetiştiriyor.

Sektörel Deneyim & Projeler

  • Ticarify Entegrasyon Yazılım logosu CEO Ticarify Entegrasyon YazılımPazaryerleri ve e-ticaret sitelerine otomatik e-fatura kesimi, sipariş ve kargo takibi hizmetleri sunan e-Dönüşüm platformunun API mimarisini ve yazılım ekibini yönetmektedir.
  • Benim Düğünüm logosu CEO Benim DüğünümDijital etkinlik ve anı paylaşım platformu.
  • Siberdizayn logosu Yazılım Ekibi Lideri SiberdizaynYüksek anlık oyuncu trafiğine sahip oyun kontrol panelleri ve sunucu altyapıları geliştiren yazılım ekibine liderlik etmektedir.
  • MEDYOGRAFYA 360° Dijital Çözümler logosu Dijital Strateji Lideri MEDYOGRAFYA 360° Dijital ÇözümlerŞirketlerin dijital çözümlerde uzun vadede nasıl ilerlemesi gerektiği ve dijital dönüşüm süreçlerinin yönetilmesine destek olmaktadır.
  • İzmir Ekonomi Üniversitesi logosu Danışma Kurulu Üyesi İzmir Ekonomi ÜniversitesiMezun olduğu üniversitesinde, Bilgisayar Programcılığı bölümünün akademik müfredatını güncel sektör ihtiyaçlarına göre şekillendirmek adına Danışma Kurulu'nda görev almaktadır.
WhatsApp Hemen Ara