Forum
merhabalar;
projede kullanıcı kayıtları veritabanında tutuluyor ve login kontrollerini burdan yapıyoruz ,burada bir sorum olacak
kullanıcıların multiple login olmasını ve tabloya manuel insert edilmesi sonucu login olabilmesini nasıl kontrol ederim , yani burdaki amacım uygulama güvenligini maksimum tutmak ,
Teşekkürler.
Merhaba,
Güzel soru :). Bunun birden fazla çözümü var ben bir tanesi aklıma gelen,
Siz anladığım kadarıyla sizin uygulamanız dışında database de direk olarak veri girişi yapılmasını istemiyorsunuz.
Bunun için verilerinizi şifrelemeniz gerekir. Bu konu hakkında encrypt decrypt işlemlerine bakın hangi dili kullanıyorsanız ona göre arama yapın çokca makale bulacaksınız. İşin mantığına gelecek olursak,
Örneğin bir tabloda kullanıcı adı ve şifre bölümleri var siz bu bölümleri md5 veya sha1 olarak birleştirip şifreleyeceksiniz ve burada oluşan hash değerini tabloda bir kolonda tutacaksınız. md5 ve sha1 ile şifrelerken de bir şifre anahtarınız olacak yani burada oluşan değerin çözülebilmesi için bu anahtar gerekli.
Tablodan veriyi çekerken md5 veya sha1 olarak tekrar şifreleyerek aldığınız değeri tabloda önceden oluşturduğunuz hash değerle karşılaştıracaksınız değer aynı ise satırda bir değişiklik yapılmamıştır aynı değilse bilin ki biri tabloya uygulama dışından müdahale etmiş. Bundan sonraki prosedür sizin kodlamada yapacağınız adımlara bağlı.
Bir kullanıcının birden fazla login olmaması durumu da login işlemini nasıl kontrol ettiğiniz ile alakalı. Ben bir örnek vereyim size.
Asp.net global.asax içerisinde applcaiton_start ve application_end işlemleri vardır bu konuyu da araştırın.
Bir kullanıcı login olduğunda kullanıcı tablosunda bir state kolonunuz olsun ve kullanıcı login olduğunda değeri 1 yapsın. Kullanıcı tarayıcıyı kapattığında application_end ile burada değeri 0 yapsın. Yani login işleminde kontrol edeceksiniz 0 ise login olmasına izin vereceksiniz 1 ise kullanıcı zaten bir yerde login olmuştur login olmasına izin vermeyeceksiniz.
Kolay Gelsin
Application_end sanırım browser kapatıldıgında tetiklenmiyor.
Geçmişte yaptığım uygulamalarda kullanmıştım. application_end browser veya pencere kapatıldığında tetiklenir asıl amacı odur zaten.
Applicacion_End IIS yada Sunucu kapandığında devreye girer , multiple kullanım için sessionID yöntemi ile ilerleyiniz.
Evet doğru orada yanlış bir bilgi olmuş Session_Start ve Session_End yöntemlerini kullanmanız gerekecek. Düzeltme için teşekkürler.
Session_End ise Session timeout sona erdiğinde devreye girer , default süre 20 dakikadır .
Session_End ise Session timeout sona erdiğinde devreye girer , default süre 20 dakikadır .
Teşekkürler.