Son zamanlarda inanılmaz sayıda çok virüsün yayılmaya başlaması, güvenlik konusuna daha fazla odaklanmayı gerektiriyor. Artık web tasarımcılarının da güvenlik konularında bilgisi olması mecburiyet haline geldi. Belki bir devlet sitesi ya da ulusal güvenlik türü konularda çalışıyor değilsiniz ama yine de yapmakta olduğunuz web sitesinin şahsi bilgiler içeren ya da kredi kartı işlemleri yapılan bölümlerinin güvenliğini sağlamanız gerekiyor.
Bu yazı dizisinde, web sitenizin güvenliğini sağlamanıza yönelik bir kaç basit ama faydalı yöntem anlatacağız. Size sunduğumuz bu çalışmalardan çok yararlanacaksınız.
Bu yazı dizisinde neleri tartışacağız;
* Login sayfanızı güncellemek
* Kullanıcı ID (tanımları)’lerini saklamak
* Şifreleri saklamak
* Erişim bilgilerini saklamak
**********************************************************
Güvenlik Düzeyini Seviyesini Anlamak
Bir siteye güvenlik eklemeden önce, öncelikle ihtiyacı tespit etmelisiniz. Sadece güvenlik sağlamak değil ama nasıl bir güvenliğe ihtiyacı olduğunu anlamak daha önemli. Şimdi, güvenlik ihitiyacını analiz edin. Bütün siteyi mi yoksa sadece belli bir bölümü mü güvenli hale getireceksiniz? Güvenlik altına alacağınız bilgi, kredi kart ya da sosyal güvenlik numarası cinsi hassas bilgiler mi? Çoklu-düzey güvenliğe mi ihtiyacınız var ? (örneğin, A, sitenizde güvenlik gerektiren 3 bölüme erişme hakkına sahipken, B belki tek yere erişebilmeli)
Güvenlik, Sitenin Tamamını mı Yoksa Bir Parçasını mı Kapsamalı ?
Tabi ki, parçaları yerine, sitenin bir kalemde tamamını güvenli hale getirmek, daha kolaydır. Ama, en çok karşılaştığımız durum, parçaları üzerinde güvenlik sağlamak oluyor. Çoğunlukla, belli bir parçayı abonelere tahsis etmek ya da belli bir yazılım paketini satın almış kayıtlı kullanıcıların devamlı erişecekleri bir sistem kurmak gibi konularda çalışırız. Bir sitenin, kayıtlı olmayanlara tamamen kapatılması nadiren olur çünkü, siteler reklamla çalışır. Bu nedenle de ancak bir bölümünü aboneye tahsis ederiz.
Güvenlik altına aldığınız bilginin mahiyeti nedir ? Kredi Kart türü önemli bir bilgi mi
Ne farkeder ki ? Neden herşeyi bir kalemde şifrelemeyelim ?
Tek bir basit cevap ; işlemi çok yavaşlatır. Sayfalarınızı şifrelemek için sunucu ve istemci çok karmaşık bir giden-gelen trafiği içinde kalır. Herbir paket, tek tek önce şifrelenir, sonra çözülür. Bu şifreleme işinin adımları şöyle yürür.
Bir : Müşteri SSL (Secured Socket Layer) bağlantı kurulmasını talep eder,
İki : Sunucu bir sertifika gönderir (sertifikanın ne olduğunu daha sonra anlatacağım)
Üç : Müşteri sertifikayı onaylar ve bir oturum anahtaru yaratır, bu anahtarla da sertifikayı encrypt eder.
Dört : Sunucu oturum anahtarını çözer ve encrpted bağlantıyı sağlar
Şimdiye kadar kötü bir şey yok, henüz hiç “gerçek” bilgi yollamadınız. Daha henüz bağlantı sağladınız. Şimdi olay ilginçleşmeye başlıyor. Tüm işlemi gerçekleştiren, server’in size yoılladığı sertifikadır. Sertifika, Sertika Merkezinden alınır. Bu merkez bir nevi noter görevi görür, sertifikaları dolayısıyla ismi onaylar. Sertifika üzerinde server ismi bulunur. Dolayısıyla bu sertifikayı başka bir server kullanamaz. Ek olaraki güvenli bağlantıyı yaratmak ve onaylamak için, özel ve genel anahtarlar kullanır. Bu anahtarlar onaylama işleminin en önemli bölümleridir.
Şifreleme ilginç bir bilimdir. Anlatmak bu yazının sınırlarını aşar. Umarım yukarıdaki satırlar merakınızı tatmin etmiştir. Daha fazla bilgi almak isterseniz, bu konuda Microsoft’un web site‘nde ilgili bölüme bakabilirsiniz.
Bağlantı sağlandığında, her paket sunucuda şifrelenip, ulaştıkça müşteride çözülmelidir ya da tersi olmalıdır. Bu sayfadaki herşeyi ya da hiçbirşeyi içerebilir. Resimler, animasyonlar vs.. Dolayısıyla, sayfada gösterdiğinizle, göndereceğiniz bilginin niteliği önemlidir.
Bizim örneğimizde, ben size sadece abonelere açılacak sayfaları nasıl kilitleyeceğinizi göstereceğim. Bu sayfalarda, satın alınan bir programa ait kullanma kılavuzu yer alacak. Şirket bilgisi, sırları veya hassas bilgi yer almayacak. Bu nedenle de SSL kullanmayacağım. İkinci olarak, müşterilerin aboneliklerini kredi kartları ile ödemelerine olanak veren bir sayfayı güvenlik altına alacağım. Tabi ki, bu sayfa hassas bilgiler içererecek ve ben bunun için SSL kullanacağım.