ASP.Net Core Projelerinde Güvenlik — Veriyi Süreli Olarak Şifrelemek

Bir önceki yazımda veriyi nasıl şifrelediğimiz ve şifreyi nasıl çözeceğimizden bahsetmiştim. Bugünkü yazımda ise veriyi süreli olarak nasıl şifreleyeceğimiz ve çözeceğimiz ile ilgili bilgiler vermeye çalışacağım .Faydalı olması dileğiyle 🙂

  • IDataProtector interface üzerinden Protect ile şifrelediğimiz bir veriyi UnProtect ile çözümleyebiliyorduk. Şimdi ise veriyi şifrelerken bu veriye bir süre vereceğiz.
  • Şifreledikten sonra 3 saniye süre verilirse , 3 saniye içerisinde çözülme işleminin gerçekleşmesini bekleyeceğiz. Ancak 3 saniyeden fazla sürerse şifre çözülmeyecektir.
  • Bu yaptığımız işlemi Api işlemlerinde çokça kullandığımız Token kavramı ile benzer gibi düşünebiliriz. Tokenlar da süreli olabilir. Çok kritik ise 1 saniye, 5 saniye gibi değerler verilebildiği gibi 1 hafta süreli tokenlar da olabilir.
  • Şifrelenmiş dataya süre belirtmek için ToTimeLimitedDataProtector metodundan faydalanırız. IDataProtector üzerinden uygulanır.
  • IDataProtector üzerinden ToTimeLimitedDataProtector metodunu kullandığımızda şifremize bir süre vermek için ilk aşamayı tamamlamış oluruz.
  • Ürünler içeriinde dönerken _dataProtector ‘dan çağırmak yerine yeni oluşturduğumuz timeLimetedProtector üzerinden çağırma işlemini gerçekleştireceğiz.
  • timeLimitedProtector geri dönüş değeri olarak ITimeLimitedDataProtector interfacesini döndürmektedir.
  • Protect metodundan yararlanırken bu sefer bir de süreyi girebilmemiz için parametre geleceğini göreceğiz. Bu süre işlemini de TimeSpan ile 5 saniye olarak ayarlayabiliriz.
  • Yani şifrelenmiş veri 5 saniye içerisinde çözülebilir. 6. Saniyede çözülmeye çalışırsa ÇÖZÜLEMEZ..
  • Aynı işlemi Details sayfasında da gerçekleştirmemiz gerekmektedir. Bunu yapmamızın sebebi de ürün detayı açılmadan önce eğer 5 saniyeden fazla beklenirse hata fırlatmasını sağlayabilmektir.

Bir sonraki yazımda görüşmek üzere 🙂

https://github.com/KardelRuveyda/ASPNetSecurity kodları Github ‘da oluşturduğum Repository’den inceleyebilisiniz.

Kaynakça