Güvenlik, birçok KOBİ için ancak bir şeyler ters gittiğinde öncelik haline gelir. Bir platform veya e-ticaret sitesi düzgün çalıştığı ve ziyaretçiler yolunu bulduğu sürece, ilk bakışta ortada bir sorun yokmuş gibi görünür. Oysa otomatik botlar ve script'ler her gün online altyapıya binlerce istek gönderir; bilinen güvenlik açıklarını, zayıf korunan yönetici panellerini veya zayıf şifreleri sürekli arar.
Bir girişimci için güvenlik yalnızca teknik kesintileri önlemekle ilgili değildir. Müşteri güvenini ve işletmenizin sürekliliğini doğrudan etkiler. Bir güvenlik açığı, veri sızıntısı veya müşteri verilerinin kötüye kullanılması, aylarca süren itibar inşasını bir anda yok edebilir. Dijital kanalınızdaki güvenilirlik, online ciro elde etmenin ve bunu sürdürmenin ön koşuludur.
Bu yazıda, pratik bir kontrol listesi aracılığıyla en sık görülen riskleri ele alıyoruz. Bu maddeleri kendi web sitenizin, web uygulamanızın veya özel platformunuzun güvenliğini kontrol etmek ve güçlendirmek için kullanabilirsiniz.
Adım 1: Erişim yönetimini ve kimlik doğrulamayı sıkılaştırın
Kötü niyetli kişilerin içeri sızmasının en kolay yolu ön kapıdan girmektir. Kötü yönetilen kullanıcı hesapları ve zayıf şifreler, KOBİ platformlarındaki en büyük zafiyetlerden biri olmaya devam ediyor.
Öncelikle yönetici paneline, veritabanına ve hosting ortamına kimlerin erişimi olduğunu kontrol edin. Birçok organizasyonda, eski çalışanlara veya dış tedarikçilere ait hesaplar kimse fark etmeden aylarca aktif kalabiliyor. Bunu periyodik olarak temizlemeyi bir alışkanlık haline getirin.
Ardından sıkı kimlik doğrulama kurallarını uygulayın:
- Yönetici haklarına sahip her hesap için çok faktörlü kimlik doğrulamayı (MFA veya 2FA) zorunlu kılın. Bu yalnızca CMS'iniz veya yönetim sisteminiz için değil, veritabanınız ve hosting sağlayıcılarınız için de geçerlidir.
- Rol tabanlı erişim kontrolü (Role-Based Access Control) kullanın. Makale yayınlayan bir editörün veritabanı ayarlarına veya müşterilerin finansal verilerine erişmesine gerek yoktur.
- Veritabanını satır düzeyinde koruyun (Row Level Security veya RLS). Supabase gibi modern bir backend'de bu, frontend kodu atlatılsa bile kullanıcıların yalnızca açıkça yetkili oldukları verileri görüntüleyebilmesini veya değiştirebilmesini sağlar.
En az yetki ilkesine göre hakları sınırlamak, ele geçirilen bir hesabın doğrudan tüm platformun anahtarlarını ele geçirmesini engeller.
Adım 2: Giriş ve API güvenliğini düzene sokun
Formlar, arama çubukları ve API bağlantıları, ziyaretçilerin sunucunuza veri gönderdiği noktalardır. Bu girdi sıkı bir şekilde kontrol edilip filtrelenmediğinde, Cross-Site Scripting (XSS) ve SQL enjeksiyonu gibi tehlikeli açıklar ortaya çıkar.
Otomatik bir script, güvenliği sağlanmamış bir form üzerinden diğer ziyaretçilerin tarayıcısında çalışacak kötü amaçlı kod enjekte edebilir veya veritabanınızda doğrudan sorgu çalıştırmaya çalışabilir.
Veri girişinizi korumak için şu noktaları gözden geçirin:
- Hem client-side hem de server-side tarafta tüm girdileri doğrulayın ve temizleyin. Tarayıcıdan gönderilen verilere asla güvenmeyin.
- React ile TypeScript gibi modern bir frontend yığını kullanın. TypeScript veri tiplerini sıkı bir şekilde tanımlamaya yardımcı olurken, React girdileri DOM'a yerleştirmeden önce varsayılan olarak temizler.
- API anahtarlarını ve gizli bilgileri koruma altına alın. Veritabanına yazma izni olan anahtarlar asla frontend koduna veya Vite gibi bir build aracının herkese açık değişkenlerine girmemelidir. Ortam değişkenleri (environment variables) kullanın ve hassas işlemleri güvenli backend fonksiyonları üzerinden gerçekleştirin.
- Doğru HTTP başlıklarını ayarlayın. Hangi kaynakların script yükleyebileceğini belirlemek için bir Content Security Policy (CSP) kullanın ve diğer domainlerden gelen yetkisiz istekleri engellemek için sıkı bir Cross-Origin Resource Sharing (CORS) politikası uygulayın.
Adım 3: Bağımlılıkları ve dış script'leri sınırlayın
Bir platform ne kadar çok dış yazılım, eklenti ve script kullanırsa, güvenlik riski o kadar artar. Yüklediğiniz her dış script, aslında sayfanızın bağlamına ve ziyaretçilerinizin verilerine erişim kazanır.
Birçok standart sistem, neredeyse hiç bakımı yapılmayan düzinelerce üçüncü taraf eklentiye dayanır. Bu tedarikçilerden birinde bir açık varsa veya kötü niyetli bir tarafa satılırsa, platformunuz doğrudan risk altına girer.
Bağımlılık riskini şu adımlarla sınırlayın:
- Hazır eklentilerin kullanımını kesinlikle asgari düzeyde tutun. Özel kodla yapılan bespoke çözümler, gerçekte hangi kodun çalıştığı üzerinde size tam kontrol sağlar.
- npm paketlerinizi veya diğer bağımlılıklarınızı düzenli olarak denetleyin. npm audit gibi araçlar, kütüphanelerdeki bilinen güvenlik açıklarını otomatik olarak tespit edebilir.
- Analytics, izleme pikselleri ve sohbet widget'ları gibi dış script'leri envantere alın. Her script için, işletmeniz açısından gerçekten gerekli olup olmadığını ve tedarikçinin modern güvenlik ve gizlilik standartlarını karşılayıp karşılamadığını sorgulayın.
- Tüm iletişimin geçerli ve güncel bir SSL/TLS sertifikasıyla HTTPS üzerinden gerçekleşmesini sağlayın. Bu yalnızca veri aktarımını korumakla kalmaz, aynı zamanda ziyaretçilerin platformunuza olan genel güvenini de güçlendirir.
Adım 4: Veri koruma, loglama ve depolamayı yapılandırın
Veriler bir kez içeri girdiğinde, güvenli bir şekilde saklanmaya devam etmelidir. Veri sızıntıları genellikle karmaşık saldırılardan değil, yanlış yapılandırılmış depolama alanlarından (storage bucket) veya API uç noktalarındaki eksik sınırlamalardan kaynaklanır.
Veri koruması, depolama ve izleme konusunda yapılandırılmış bir yaklaşım gerektirir:
- Depolama ortamlarını (storage bucket) güvence altına alın. Örneğin Supabase Storage'da dosya, belge veya görsel saklarken, hangi dosyaların herkese açık olacağını ve hangilerinin kimlik doğrulamasının arkasında korunması gerektiğini açıkça belirlemelisiniz.
- Hassas verileri şifreleyin. Şifreler asla düz metin olarak saklanmamalı, her zaman kanıtlanmış algoritmalarla hash'lenmelidir. Hassas veriler hem beklemede (veritabanında) hem de aktarım sırasında (gönderilirken) şifrelenmiş olmalıdır.
- Tüm kritik uç noktalarda rate limiting (istek sınırlama) uygulayın. Bu, otomatik script'lerin dakikada binlerce giriş denemesi yapmasını (brute-force saldırıları) veya sunucunuzu otomatik isteklerle aşırı yüklemesini önler.
- Loglama ve izleme sistemleri kurun. Başarısız giriş denemelerinde ani bir artış veya backend'de alışılmadık hata mesajları gibi dikkat çekici davranışlarda bildirim almanızı sağlayın.
Bu dört adımı sistematik olarak uygulayarak, başarılı bir saldırı riskini büyük ölçüde azaltırsınız. Güvenlik tek seferlik bir proje değil, dijital platformunuzun yönetiminin ve geliştirilmesinin kalıcı bir parçasıdır.
Web sitenizin veya uygulamanızın güvenliğini ve mimarisini deneyimli bir geliştiriciye kontrol ettirmek ister misiniz? Platformunuz için seçenekleri görüşmek üzere ferhat.io/contact üzerinden ücretsiz 30 dakikalık bir görüşme planlayın.



