imas adlı üyeden alıntı: mesajı görüntüle
Merhaba Hocam,

İnternetten araştırmama rağmen bir cevap bulamadım daha doğrusu derdimi anlatamadım Google'a.

Sorum şöyle:
Asp.net MVC tarafında geliştirme yapmaktayım. Sizden fikir yada araştırma yapacağım konuyu söylemenizi istiyorum. En basit örnek ile ürün listelerken ürüne ait seçenekleri (k=kırmızı,s=siyah,y=yeşil gibi) select nesnesine dolduruyorum kullanıcı renk seçeneğini seçip sepete ekleme methoduna değerleri gönderiyor ve sepete ekliyorum. Ancak ürüne ait seçenekleri tarayıcıda incele diyerek value değerini değiştirip sepete ekle diyebilir ve yani k=kırmızı değerini p=kırmızı yapabilir ve ben gelen renk detayının eklenen stok için olup olmadığını veritabanına ilgili stok için sorgu çekerek kontrol etmem gerekiyor. ama bu da yavaşlığa sebep olurken bana mantıksız geliyor. Doğru olan işleyiş ve yol nedir onu öğrenmek istiyorum.

Yani benim select nesnesine dolduruduğum değerler post edilirken gerçekten benim doldurduğum değerler mi bunu kontrol etmek istiyorum

Teşekkürler.
Merhabalar,

Ö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