
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
- https://www.udemy.com/course/aspnet-core-security/ ( Fatih Çakıroğlu- ASPNET Core Security)