2016-04-05 27 views
1

ASP.NET Giriş denetimi hakkında hızlı bir sorum var.ASP.NET Giriş Denetimi - Authentication olayıyla SQLi'den koruma?

SQL Injection'dan koruduğunu anlıyorum, ancak "Authenticate" Sub'u (özel bir kimlik doğrulama yöntemi için) kullandığımda da koruyup korumayacağını merak ediyordum?

Devam edip, parametre olarak kodlamadan bir SQL deyiminde 'kullanıcı adı' ve 'parola' kullanabilir miyim? Şerefe.

+0

Oturum denetimi, Üyelik Sağlayıcısı veya Kimlik kullanmıyorsanız SQL enjeksiyonunu korumaz. Lütfen kodunuzu gönderin. – Win

+0

Cevabınız için teşekkür ederiz. Evet Üyelik kullanıyorum. Tek endişem, girdilerin "Kimlik Doğrulama" alt yürütmeden önce kontrol edilmemesidir. bu açıklama ise Yani güvensiz "Yetkilendirme"? ... bir INNER OLARAK aspnet_Membership GELEN SEÇ * A.UserId = B.UserId NEREDE B.UserName = '" & Login1.UserName ÜZERİNE B OLARAK aspnet_Users KATILIN & "'AND A.Password ='" & Login1.Password & "'; " – user3173098

+0

Son yazımı basitleştirmek için - bir SQL dizesinde Login1.Username ve Login1.Password birleştirmek güvenli midir? ("Kimlik Doğrulama" alt yürütmeden önce doğrulanmış mı?) – user3173098

cevap

1
aspnet_Membership İTİBAREN

SEÇİN * Bir İÇ A.UserId = B.UserId NEREDE B.UserName = ' "& Login1.UserName &"' AND A.Password = '" & Login1 ÜZERİNE B OLARAK aspnet_Users KATILIN .Password & "';"... SQL deyimi Üstü

güvenli değildir SQL Enjeksiyon saldırısı eğilimli Sen parametreli sorgu kullanmak istediğiniz Örneğin

,

SELECT * 
FROM aspnet_Membership AS A INNER JOIN aspnet_Users AS B 
    ON A.UserId = B.UserId 
WHERE B.UserName = @UserName AND A.Password = @Password 
+0

Tamam, bunun için teşekkürler. Parametreler üzerinde çalışacağım :) – user3173098