Sayfalar

10 Haziran 2013 Pazartesi

ASP.NET MVC DERSLERİ ( 7 ) ÜYELİK, YETKİLENDİRME VE GÜVENLİK

Güvenlik bir web uygulamasın için çok önemlidir. Çünkü web uygulamaları, dünyadaki tüm kullanıcılara açılan bir uygulamadır.

Web uygulamarında güvenlik çalışmaları genelde, can sıkıcı bir iştir. Birçok kişi için angarya gelir. Ama kullanıcılar için güvenlik çok önemlidir. Hem kullanıcılar için, hemde uygulama için. Çünkü kullanıcılar web sitesine güvenmelidirler. Kişisel bilgilerinin korunduğunu bilmeleri gerekir.

MVC, Web Forms gibi bazı otomatik güvenlik önlemlerini içermiyor. Mesela web forms aşağıdaki otomatik güvenlik önlemlerini içerir;

  • Sunucu taraflı html elemanları sayesinde, XSS saldırılarını engeller.
  • ViewState, şifreleme ve doğrulama ile form post edilirken formu güvenlik altına alır.
  • Request Validation (<% @page validaterequest="true" %>) ile istekte bulunulan veriyi doğrulama işlemi yapar. (Bu MVC de de geçerlidir.)
  • injection ve hatalı verileri engellemek için de olay tabanlı bir doğrulama vardır.
Elbette MVC de de bazı otomatik güvenlik önlemleri vardır. Ama her zaman dediğimiz gibi, çok esnek ve genişletilebilir bir yapıya sahiptir. Güvenlik önlemlerine geçmeden önce, güvenliğin ciddiliği konusunda birkaç tavsiye;

Kullanıcıların, girdiği hiçbir veriye güvenilmemeli ve bu mantıkla önlem alınmalıdır
  • Kullanıcıdan gelen veriyi kaydettikten sonra, bu veriyi görüntülerken html-encoding yapmak.
  • Uygulamanın hangi kısımları herkese açık, hangi kısımları üyelik gerektiriyor, bunları belirlemek.
  • Kullanıcının girdiği veriyi kendiniz sterilize etmeye çalışmayın.
  • HTTP-only cokie ler kullanılmalı, eğer istemci taraflı script ile erişim yapılmayacaksa.
  • Form içerisinde sadece açık/görünür alanlar yoktur. URL query string, hidden fields, ajax-request, web servislerden gelen veriler gibi, görünmeyen alanlarında olduğunun unutulmaması.
  • Mutlaka bir AntiXSS kütüphanesi kullanmayı düşünmek.
Bu liste genişletilebilir.Bunları akıldan asla çıkarmamak lazım. Web üzerinde çok fazla kötü niyetli insan vardır ve mutlaka saldırı yapacaklardır. Hatta kendi kullanıcılarınız arasında bile bu mümkündür. Çok ciddi bir konudur güvenlik. Sürekli her tehlikeye karşı hazırlıklı olmak gerekir. Bugün dünya çapında uygulamaların bile mutlaka açıkları çıkmaktadır. Bu büyük uygulamaları bile sekteye uğratacak derecede saldırılar olmaktadır. Eğer bu saldırılarla karşılaşmadıysanız, ya web uygulaması yapmadınız, ya da web üzerinde hiç kötü niyetli insan yoktur.

Peki saldırıların sebepleri nelerdir? Amaç nedir? Sonucunda ne isterler?

Bu saldırıların birçok nedeni olabilir. Aslında günlük hayatki olaylarla aynıdır. Örneğin bir adam neden hırsızlık yapar? İnsanlar neden kavga eder? Devletler neden savaşır? gibi insanların içerisinde bulunduğu kötü olaylar neden oluyorsa, bu saldırılarda ondan dolayı olabilir. Bazısı kendisini ıspatlamak için, bazısı alışkanlıktan, bazısı menfaat elde etmek için bu saldırıları yapabilir.

Bu saldırılardan elde edilecek şeyler bilgidir. Yani, kötü niyetli kullanıcılar, bilgisayarınız üzerindeki verileri almak, maillerinizi ele geçirmek ve ya sizin paylaşmak istemediğiniz bildileri edinmek suretiyle bu saldırıları yaparlar...

Yedinci dersler boyunca elimizden geldiğince bu konulara değineceğiz. Elbette bu konu çok geniş bir konudur. Dolayısıyla herşeyi göremeyebiliriz. Bu konuda da tavsiyelerinizle eklemeler yapabiliriz....

Hiç yorum yok:

Yorum Gönder