Konu Anlatımı
Oturum ve Güvenlik
Oturum ve Güvenlik, Web Tabanlı Uygulama Geliştirme dersi kapsamındaki Sunucu Taraflı Programlama ünitesinin temel konularından biridir. Bu konu alanın gerektirdiği bilgi ve becerilerin kazandırılmasına temel oluşturur.
Temel Bilgiler
- Sunucu taraflı kod veritabanına erişir ve dinamik sayfa üretir.
- SQL enjeksiyonuna karşı parametreli sorgu kullanılmalıdır.
- Oturum (session) kullanıcı durumunu saklar.
Uygulama ve Dikkat Edilmesi Gerekenler
Bu konunun uygulamasında iş güvenliği kurallarına uyulmalı, kullanılan araç ve malzemeler amacına uygun seçilmeli ve yapılan işlemler standartlara göre kontrol edilmelidir. Öğrenilen bilgiler atölye ve iş yeri uygulamalarıyla pekiştirildiğinde kalıcılık artar.
Oturum Kavramı ve Saklama Yöntemleri
Web uygulamaları istekler arasında durumu korumak için çerez, sessionStorage ve localStorage kullanır. Çerez sunucuya her istekte otomatik gider ve süresi olabilir; localStorage ile sessionStorage tarayıcıda kalıcıdır, ancak ikisi de yalnız metin saklar ve JavaScript ile okunabilir. localStorage oturumlar arasında, sessionStorage sekme kapanana kadar korunur.
Güvenlik Tehlikeleri
Kullanıcıdan gelen veri doğrudan sayfaya yazılırsa betik enjeksiyonu (XSS) ortaya çıkar; bu yüzden DOM yazımında textContent gibi güvenli yöntemler kullanılır, iç denetim yapılmayan HTML bağlanmaz. Oturum bilgisi tutuluyorsa kimlik doğrulama belirteci (token) değerinin kendisi değil, güvenli HttpOnly çerezde tutulan biçimi tercih edilir; oturum zamanaşımı da kısa tutulur.
Adım Adım Güvenli Tasarım
- Kimlik bilgisini yalnız HTTPS üzerinden gönder.
- Oturum verisini sınırlı süreyle sakla, zamanaşımı uygula.
- Kullanıcı verisini HTML olarak değil, metin olarak ekrana yaz.
- Hassas bilgiyi localStorage'a yazma; çerez bayraklarını (Secure, HttpOnly) kullan.
Örnek Uygulama
Bir panoda kullanıcı yorumu ekrana basılırken innerHTML yerine textContent kullanıldığında, yoruma gömülü betik çalışmak yerine düz metin olarak görüntülenir. Böylece XSS kaynaklı çalma riski kapanır.
Sınav ve Uygulama Odaklı Noktalar
Sınavda üç saklama yönteminin süre farkı ve XSS önlemleri sık sorulur. Uygulamada oturum kapatıldığında localStorage temizlenir, giriş yapmadan erişilen sayfalar yeniden yönlendirilir.
Çerez ve Oturum Saklama Yöntemleri
Web uygulamalarında kullanıcı durumunu korumak için çerez, sessionStorage ve localStorage gibi saklama yöntemleri kullanılır. Çerezler sunucuya her istekte otomatik gider ve süresi belirlenirken, localStorage ve sessionStorage tarayıcıda kalıcıdır. Bu yöntemler, kullanıcıların oturum bilgilerini saklamada farklı amaçlarla kullanılır. Örneğin, localStorage oturumlar arasında korunurken, sessionStorage sekme kapanana kadar kalır. Bu nedenle, web geliştiricileri her saklama yönteminin özelliklerini dikkatlice incelemelidir.
Çerezlerin güvenliği için HttpOnly ve Secure bayrakları kullanılır. Bu bayraklar, çerezleri JavaScript ile erişilemez hale getirir ve sadece güvenli bağlantılar üzerinden kullanılmasını sağlar. Ayrıca, oturum bilgilerini saklamak için parametreli sorgular kullanılır. Bu yöntemler, SQL enjeksiyonu gibi güvenlik tehditlerini azaltır. Web geliştiricileri, bu kavramları doğru şekilde uygularken dikkatli olmalıdır.
Ne Öğreneceğiz
Web Tabanlı Uygulama Geliştirme dersi kapsamında Oturum ve Güvenlik konusu. Bu konuda ögrenme çıktıları:
- Oturum ve Güvenlik ile ilgili temel kavramları açıklar.
- Oturum ve Güvenlik konusunun Web Tabanlı Uygulama Geliştirme dersi içindeki yerini ve önemini belirtir.
- Konuyla ilgili araç, gereç ve malzemeleri amacına uygun seçer.
- İş sağlığı ve güvenliği kurallarına uygun çalışır.
- Öğrendiği bilgi ve becerileri atölye/iş yeri uygulamalarında kullanır.
Ön Bilgi
Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:
- Sunucu taraflı kod veritabanına erişir ve dinamik sayfa üretir.
- SQL enjeksiyonuna karşı parametreli sorgu kullanılmalıdır.
- Oturum (session) kullanıcı durumunu saklar.
- localStorage ve sessionStorage yalnız metin saklar ve aynı köken (origin) içinde okunur.
- Kullanıcı verisi HTML olarak bağlanırsa XSS riski doğar; metin yazım yöntemleri tercih edilir.
Basit Örnek ve Günlük Yaşam
Günlük yaşamda ve mesleki bağlamda bir uygulama:
Soru: Sunucu taraflı kod veritabanına erişir ve dinamik sayfa üretir.
- Konuyu tanımla ve ilgili kavramları belirle.
- Doğru yöntem veya hesaplamayı uygula.
- Sonucu standartlara göre kontrol et.
Sonuç/cevap: Doğru uygulama sonucunda konuyla ilgili kazanım elde edilir.
İleri Örnek
Daha ileri bir uygulama:
Soru: Farklı iki sitede çalışan betik aynı tarayıcıda kullanıcı verisine ulaşabilir mi?
- Adım 1: Tarayıcının köken (protokol, alan adı, port) kuralını hatırla.
- Adım 2: Saklama alanının yalnız aynı kökende okunduğunu değerlendir.
- Adım 3: Farklı köken için sunucu aracılığıyla ve izinlerle çalışıldığını belirt.
Sonuç/cevap: Hayır; saklanan veri aynı kökenle sınırlıdır, ayrım olmadan erişim engellenir.
Karşılaştırma Tablosu
| Kavram | Açıklama |
|---|
| Sunucu taraflı kod veritabanına erişir v | Sunucu taraflı kod veritabanına erişir ve dinamik sayfa üretir. |
| SQL enjeksiyonuna karşı parametreli sorg | SQL enjeksiyonuna karşı parametreli sorgu kullanılmalıdır. |
| Oturum (session) kullanıcı durumunu sakl | Oturum (session) kullanıcı durumunu saklar. |
| localStorage ve sessionStorage yalnız me | localStorage ve sessionStorage yalnız metin saklar ve aynı köken (origin) içinde okunur. |
| Kullanıcı verisi HTML olarak bağlanırsa | Kullanıcı verisi HTML olarak bağlanırsa XSS riski doğar; metin yazım yöntemleri tercih edilir. |
Sık Yapılan Hatalar
Oturum ve Güvenlik ile ilgili kavramları birbirine karıştırmak: Temel kavramları tablo veya zihin haritasıyla ayırt et.
Uygulamada standartlara ve iş güvenliği kurallarına uymamak: Her adımda güvenlik ve kalite kurallarını uygula.
Kullanılan araç-gereci amacına uygun seçmemek ve bakımını ihmal etmek: Doğru ekipmanı seç, kullanım öncesi ve sonrası kontrol et.
Parola veya jetonu localStorage'a yazmak: Betik enjeksiyonunda bu değerler okunabilir; hassas veri çerezde HttpOnly ile tutulur.
Özet
Oturum ve Güvenlik, Web Tabanlı Uygulama Geliştirme dersi kapsamında ele alınan temel konulardan biridir. Sunucu taraflı kod veritabanına erişir ve dinamik sayfa üretir. SQL enjeksiyonuna karşı parametreli sorgu kullanılmalıdır. Oturum (session) kullanıcı durumunu saklar. Bu bilgiler uygulama ve iş güvenliği kurallarıyla birlikte pekiştirilmelidir.
Kendini Dene
Soru: Yönerge: Bir uygulamanın oturum ve saklama stratejisini yaz. Planda oturumun neyi sakladığını, sessionStorage ile localStorage farkını, kimlik doğrulama belirtecinin nerede tutulacağını, oturum kapatıldığında yapılacakları ve origin kuralının neyi garanti ettiğini ayrı maddeler hâlinde belirt; ardından bir e-ticaret uygulaması için hangi verinin nereye yazılacağını örneklerle göster.
Örnek cevap: Puanlama anahtarı: oturumun kullanıcı durumunu sakladığının yazılması 3 puan; sessionStorage'ın sekme süresince, localStorage'ın kalıcı olduğunun yazılması 4 puan; kimlik belirtecinin güvenli çerez ile sunucuda tutulacağının yazılması 4 puan; oturum kapatıldığında belirtecin sonlandırılması gerektiğinin yazılması 3 puan; origin'in aynı site dışına erişimi engellediğinin yazılması 3 puan; örneklerde sepet verisinin nereye, oturum bilgisinin nereye yazılacağının gösterilmesi 3 puan. Toplam 20 puan. Model cevap: Strateji oturum, iki saklama yöntemi, belirteç, çıkış ve origin başlıklarını içerir; geçici durum sekmeye, kalıcı tercih localStorage'a, kimlik ise güvenli çerez ve sunucuya yazılır.