imas adlı üyeden alıntı:
mesajı görüntüle
Öncelikle şunu söylemek istiyorum; Form datalarından gelen kritik bilgileri backend kısmında mutlaka kontrol etmelisiniz.
1. Önerim; Bu tarz verileri form üzerinde şifreleyerek göstermeniz, controller kısmında ise o şifreyi çözerek işlem yapmanız.
Herhangi bir şifreleme yöntemi kullanabilirsiniz. Zaten kullandığınız şifreleme yöntemi size özel olacağı için, herhangi biri onun yerine ne yazarsa yazsın controller'da yapacağınız basit bir if kontrolü ile tespit edebilirsiniz.
Örneğin;
<select name="Varyant"> <option value="1a221">Kırmızı</option> <option value="2fg44">Beyaz</option> </select>Buradaki value bilgileri sizin oluşturduğunuz bir algoritma ile şifrelenmiş durumda.
Controller;
public JsonResult KayitYap(Urun model)//ürün bilgilerini içeren sembolik sınıfımız
{
string varyant = SifreCozmeMethodu(model.Varyant);//select elementinin seçili value'sunu şifre çözme fonksiyonuna göndererek şifrelenen değerin çözülmesini sağladık.
//... diğer işlemler
}
Not: Bu örnek genellikle ID vb kritik bilgilerin saklanması ve çözümlenmesi için kullanılır. Siz select üzerinden örnek verdiğiniz için bende yukarıdaki örneği yazdım. Select vb elementler için 2.önerime göz atmanızı öneririm.2.Önerim; Özellikle e-ticaret sitelerinde varyant eklerken(renk, tür, boyut vb.) oluşturmuş olduğunuz varyantlar veritabanına şifrelenerek eklenir. Dolayısı ile herhangi bir şifreleme işlemine gerek kalmadan işlemi gerçekleştirebilirsiniz. Örneğin GUID olarak eklediğiniz bir bilgiyi, kişi kaynak koddan değiştirse de, controller kısmında kayıt ekleme-güncelleme gibi işlemlerde ilgili kayıt veritabanında bulunamadığı için hata verecektir. İşlem sonlanacaktır.Birkaç farklı yöntem daha var bu konu için. Yukarıdaki örneklerden yola çıkarak kendinize göre bir algoritmada oluşturabilirsiniz. Sınırı yok

İyi çalışmalar
