Bilet Satın Alma Sistemi
Siber Vatan eğitim programı için yazdığım, tek konteynerde çalışan bir bilet satın alma uygulaması. Uygulamayı bitirdikten sonra kendi koduma karşı sızma testi ve zafiyet analizi yürüttüm.
- Siber güvenlik projesi, Siber Vatan programı
- PHP
- SQLite
- Docker
- 2025
- Bulgular satın alma akışını değiştirdi: girdi doğrulamayı sınıra taşıdım, uygulama artık root olmayan bir konteynerde çalışıyor.
Ne yaptım
Siber Vatan eğitim programı kapsamında bir bilet satın alma sistemi geliştirdim, ardından kendi uygulamama karşı sızma testi ve zafiyet analizi yürüttüm. Bulgular işin ikinci yarısını belirledi: veritabanına dokunan her istekte girdi doğrulama, çalınan bir çereze karşı dayanıklı oturum yönetimi ve uygulamanın root olarak çalışmadığı, gereğinden fazlasını dışarı açmadığı bir Docker yayını.
Neden böyle kurgulandı
Önce uygulamayı yazıp sonra ona saldırmak işin özüydü. Zafiyet listesi okuyarak problemin ancak adını öğreniyorsunuz. Kendi satın alma akışınız gözünüzün önünde başkasının biletini teslim edince, önlemin neden o biçimde alındığı da yerine oturuyor. Teknoloji yığınını bilinçli olarak küçük tutmak, yani tek konteynerde PHP ve SQLite, hiçbir şeyin bir framework'ün arkasına saklanmamasını sağladı: her girdi yolu ve her oturum kararı benim yazdığım ve kırabildiğim koddu.
Ne öğrendim
Fark yaratan düzeltmelerin hiçbiri egzotik sayılmazdı. Bulduklarımın çoğu istemciden gelen bir değere güvenmeye dayanıyordu ve bunu kapatan kalıp hep aynıydı: sınırda doğrula, güvenilen durumu sunucuda tut ve kısayollara asla yayın adımında yer verme. Konteyneri sertleştirmek de aynı dersin parçası çıktı, çünkü uygulama ne kadar iyi yazılırsa yazılsın, izinleri gevşek bir sunucunun üstünde durduğu sürece sistemin bütünü gevşek kalıyor.
Paylaş
Bu sayfanın bağlantısı paylaşıldığında görünen kart.
Sizin de böyle bir sisteminiz mi olacak?
Ne yapılacağını ve hangi tarihe kadar gerektiğini söyleyin. İlk adımı birlikte belirleyelim.