MVC ile yazılan projenenin kaynak kodunun F12 de gözükmesi

khalannz7

Hectopat
Katılım
18 Ağustos 2022
Mesajlar
856
Çözümler
15
Merhaba. Buradaki verileri nasıl gizleyebilirim? Hepsini gizleyemeyeceğimi biliyorum ama mesela önemli verileri, network kısmında post olan Controllerin adının gözükmesi vs. bunlar nasıl gizlenir?
 
Son düzenleyen: Moderatör:
Kaynak kodundan kastınız razor syntax mı gözüküyor? Controller ismi görünüyor dediğiniz route görünüyordur. Onu route attribute'u ile değiştirebiliyorsunuz ama isimlendirmenin öyle olması iyi. Controller/Action/id şeklinde ilerlemesi gayet doğal.
 
Controller adının görünmesinin hiçbir mahsuru yok. Sen yeter ki Controller a gelen verilerin kontrolünü iyi sağla gerisine kafa yorma
 
Controller'in ismi neden gorunuyor ki? MVC paternine zaten aykiri bir hareket o.

Hocam Controllere post işlemi yaptığımda network kısmından görebiliyorum aykırı bir hareket değil.


Hocam mesela post işlemlerinde token yolluyorum Controllere ve bu token açık şekilde F12 de gözüküyor.

Controller adının görünmesinin hiçbir mahsuru yok. Sen yeter ki Controller a gelen verilerin kontrolünü iyi sağla gerisine kafa yorma

Bunun içinde SSL kurmam lazım sanırım hocam.
 
Hocam mesela post işlemlerinde token yolluyorum Controllere ve bu token açık şekilde F12 de gözüküyor.
JWT tokendan bahsediyorsan sorun yok. Productionda SSL kullanarak bağlantını güncel TLS üzerinden gerçekleştirirsen ve http-only cookielerde tutarsan tokenını bir sorun olmaz. Zaten JWT doğası gereği client tarafında görülebilir bir şey. İmza kısmı bu yüzden bulunuyor ve doğrulamada kullanılıyor. Controllerın isminin de görünmesi sorun değil. Sonuç olarak programı dış dünyaya açıyorsunuz ismin önemi yok istersen ahmet de, example.com/ahmet/.. olsun bir şey değişmiyor. CORS policy, content securiy policy gibi kavramları araştırabilirsiniz. Learn Privacy
 
Hocam Controllere post işlemi yaptığımda network kısmından görebiliyorum aykırı bir hareket değil.

Aykiri tabi ki, MVC'de model hangi controller'i cagirdigini bilmez, zaten paternin var olus amaci bu 3 konsepti ayirmak.

Ayrica linkte'de Controller yazmaz, o da RESTful prensibine aykiri.

Ortaya karisik bir seyler yaziyorsunuz.

Rest -> REST - Wikipedia
MVC -> Model–view–controller - Wikipedia
"independence of presentation and data, e.g. multiple views on one model simultaneously"
 
Son düzenleme:

Daha acemiyim hocam zaten sorunun şeklinden anlamışsınızdır.

Hocam JWT gibi konulara daha giremedim bahsettiğim @Html.AntiForgeryToken.
 
Daha acemiyim hocam zaten sorunun şeklinden anlamışsınızdır.

Problem degil, herkes acemi basliyor; ben dogrusunu soylemeye calisiyorum. Ogrenirken edindigin aliskanliklar seninle yasayacak cunku.

Ideal olarak link yapisi resource'a gore sekillenir ve cagiracagin metod da yapacagin isleme gore olusur.
Kullanici olusturacaksan "users" resource olacaktir ve POST -> /v2/api/users seklinde istek atarsin.

Model gonderdigin data'dir ve bunu kimin nasil isleyecegi View'in umrunda degildir. Boylece bagimsiz sekilde View ve Controller degisebilir; ayni modeli birden fazla View ve birden fazla controller process edebilir cunku ayrilmistir. Ayni sunucu ile Web, Mobil, SFTP yazabilirsin bu prensiplerle.

Farkli isler icin "/users/create" ya da "/HedeHodoController/Create.action" vs yaptigin anda RESTful ve MVC prensiplerin icinden gecmis olursun ve uygulama buyudugu zaman spagettiyle ugrasmak zorunda kalirsin. Controller'i refactor edersen modeli ve view'i de refactor etmen gerekiyorsa MVC hatan var demektir.
 
Son düzenleme:
Hocam JWT gibi konulara daha giremedim bahsettiğim @Html.AntiForgeryToken.
Anladım hocam. Bahsettiğiniz token CSRF saldırılarını önlemek amacıyla html formlarına eklenen, asp.net'in sunduğu bir özellik. @Html.AntiForgaryToken render olduğunda hidden bir inputa dönüşür. İçerisine cookiedeki verification token değerini alır. Tam olarak çalışması için controllerda ilgili post methoduna validateantiforgarytoken attributeunu vermen gerekiyor. Detaylı bilgi: ASP.NET MVC'de Siteler Arası İstek Sahteciliği (CSRF) Saldırılarını Önleme
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…