Kayıtlar

web güvenliği etiketine sahip yayınlar gösteriliyor

C# SecureString Sınıfı

Github 'da yer alan bir projeyi incelerken bugünkü blog yazısına konu çıkan SecureString sınıfının kullanıldığını gördüm. Daha önce hiç bir projede kullanmadım ve kullananı da görmedim açıkcası. Ben de bu sınıfı araştırdıktan sonra aslında güvenlik ile ilgili önemli bir konu olduğunu gördüğüm için ilk defa duyacaklar için bir yazı yazmak istedim. Secure String Class Ne Ola ? Öncelikle siz bir String nesnesi yaratıp içine parola veya kredi kartı no gibi arz eden bilgiler verdiniz. Bu nesneyi gerekli yerlerde kullandınız ve işiniz bitti. Nesne şuan belleğin head alanında duruyor. Bir süre bu nesneyi kullanmadınız ve ünlü garbage collector (çöp toplayıcısı) herhangi bir zamanda gelecek , optimizasyon adına heap alanında ki string nesnesine ait referansı silecek. Fakat buradan silinmesi başka yerde referansı olmayacağı anlamına gelmiyor -burası önemli. Üstte yazan temel senaryoda sıkıntılar var ! Birincisi Garbage Collector 'un ne zaman çalışacağı belli değil. İkincisi...

Asp.Net Web Güvenliği

Asp.Net ve diğer tüm web uygulamaların da dikkat etmemiz gereken bazı güvenlik maddeleri ve saldırı çeşitleri mevcut. Dilden bağımsız olarak genellikle web mantığının olduğu tüm site ve uygulamalardan bu tür açık ve saldırılara gebedir. Her dilin yöntemi ve savunma mekanizması aynı olmamakla birlikte saldırı çeşitleri mantık olarak hep aynıdır. Önceki blog yazılarımda  fikir vermesi ve daha güvenli web uygulamaları geliştirebilmemiz için popüler saldırı çeşitlerini paylaşarak çözüm yollarını masaya yatırmıştım. Şimdi o yazılara tek bir yazıdan ulaşılabilmesi için bir index görevi görecek bu yazıyı yayınlıyorum. Asp.Net Web Güvenliği Yazı Dizisi (güncellenecektir) AspNet Web Güvenliği : SQL Injection AspNet Web Güvenliği : XSS (Cross Site Scripting) AspNet Web Güvenliği : CSRF Attack AspNet Web Güvenliği : Insecure Direct Object References Ekstra SSL güvenliği için zamanında ferruh mavituna 'nın yazmış olduğu Güvenli SSL Kullanımı yazısı okunuz. Sitenizi tüm açı...

Asp.Net Web Güvenliği : XSS Attacks

XSS (Cross Site Scripting) XSS pek önemsenmeyen fakat başınıza büyük sıkıntılar açabilecek bir açıktır.Genellikle querystring üzerinden veya site üzerinde yer alan inputlar üzerinden gerçekleştirilir. Sql Injection ve XSS birbirleriyle ilişkilidir. Herhangi birinde bir eksiklik var ise her ikisine açık doğurmuş oluruz. Kısa bir örnek olarak, kullanıcı adı ve parola yer alan bir kullanıcı formunda XSS saldırıya ön planda tutmadan formu hazırladıysanız herhangi bir input değerine javascript kodu yazılabilir ve Sql Injection saldırısı denenebilir.Bakınız : Asp.Net Web Güvenliği : Sql Injection XSS saldırılarından korunmak için başlıca yöntemler ; Asp.Net RequestValidation Output Encoding Browser XSS Defence ORM (Entity Framework , Hibernate , vb) Asp.Net Request Validation Mvc projelerimizde varsayılan olarak Action methoduna gönderilen değerlerin html veya script kodu içerip içermediğni Asp.Net bizim yerimize otomatik olarak denetliyor ve request atılmasını engelle...

Asp.Net Web Güvenliği : CSRF Attacks

Web güvenliği serimizin başka bir konusu CSRF (Cross-Site Request Forgery) saldırısı ve savunma yöntemleri. MVC projelerimizde bu saldırıyı çok kolay bir şekilde dekarte edebiliyoruz.Hemen açıklamaya çalışayım. Öncelikle CSRF nedir kabaca üzerinden geçelim. Saldırgan kişi , sitemiz üzerinden login oldu ve bir session oluşturdu. Saldırgan , aynı zamanda kendi hazırladığı bir site var ve bu site üzerinden bizim sitenin fonksiyonlarını ve servislerini çağırmaya çalışıyor (aynı form ve buton gibi). Session açtığı için güvensiz siteden çağrılan method sanki bizim sitenin üzerinden çağrılmış gibi işlem görecektir. Amacımız bunu engellemektir. Mvc projelerimizde cshtml sayfalarımızda get ve post yaptığımız form nesnelerinde kullanmalıyız. HtmlHelper.AntiForgeryToken methodu yardımıyla aşağıdaki gibi kolayca form nesnemize ekliyoruz ; Daha sonra Controller tarafında çağrılan Action üzerinde aşağıdaki gibi bir FilterAttribute ekliyoruz ; İşte bu kadar . Bu şekilde CSRF sa...

Asp.Net Web Güvenliği : SQL Injection

Resim
SQL Injection Sql Injection genel olarak sorguları manipüle ederek database üzerinde CRUD işlemleri yapabilmek için izlenen saldırı çeşididir.Bu saldırıyı yapmak için izlenen yollar genellikle querystring üzerinden veya sitede yer alan herhangi bir input üzerinden olabilir.Asp.Net MVC projelerimizde aşağıda yer alan çözümleri uygulayarak kolay bir şekilde çözebiliriz. Sql Injection korunma yöntemleri ise ; ORM (Entity Framework , Hibernate) XSS Defence Data Validation Bir örnek üzerinden açıklamaya çalışıp nasıl korunabiliriz bakalım ; Özellikle herhangi bir Object Relational Mapping (ORM) aracı kullanmıyorsanız özellikle input veya querystring üzerinden gelen ifadeyi direkt sql sorgusuna dahil ediyorsanız çok büyük bir açığınız var demektir. Entity Framework (EF) kullandığınız takdirde manuel bir sql sorgusu yazmayacağınız ve objeler üzerinden sorgulamalar yapacağınız için dışarıdan gelen herhangi bir Injection denemesi duvara çarpacaktır. Aşağıda ki gibi bir f...