Ticket Sistemi Yaparken Querystring Kullanma ??
-
Ticket sistemi yapmaya çalışıyorum.ticketlarim.aspx isimli sayfamda kullanıcıya ait olan ticketları (ticketların konu başlıklarını) listview ile listelemek istiyorum.Sonra kullanıcı bi ticket seçince ticketoku.aspx isimli sayfada sectiği ticketa ait adminle yaptığı mesajlasmaları tarih sırasına göre listview ile göstermek istiyorum.Şimdi burda querystring ile ticket in id sini ticketoku.aspx e göndericem bide her defasında acaba istek yapan kullanıcı ticket in gercek sahibimi diye veritabanından bakmam lazım dimi? Yoksa baska kullanıcı querystring üzerinde ticket_id sini değiştirip baskasının mesajını okuyabilir değilmi? Hiç querystring kullanmasam direk ticketlarım.aspx te public static nesne yaratsam ticketoku.aspx oradan baksa ticket sahibine daha performanslı olur mu olmaz mı ??
Yada ticket_id 15 olsun.Ben bu 15 i kod tarafına cekip anahtar isimli bi string yaratsam ".?*/g1-}][+/-7yTz.ad2*}9/&%&+%" gibi abuk subuk bi ifade ile 15 i birleştirip MD5 ile şifreleyip veritabanına kaydetsem.Ticketları listelerken ve okurkende bu MD5 lere göre listelesem kullanici tarafındada bi daha kontrol etmesem ticket kime ait diye nasılsa bulamazlar farklı MD5 leri diye düşündüm.
Tabi kullanıcı başka zararlı kod gönderebilirmi querystring üzerinden onuda bilmiyorum.Özetle nasıl yapılır mesaj okuma mesaji gösterme durumlar?? Bu yazdığım MD5 saçma ve gereksiz mi olur?
-
querystring ile yapacağın bölüm üyelere özel bir bölümde bana kalırsa querystring yapmana gerek yok. Public bir yer ve kullanıcıların o adresi paylaşmasını istediğin yerleri querystring ile belirginleştir.
id ile işlem yapacağın yer kullanıcıların özel bölümü olduğu için id'yi isteyen kullanıcının gerçek ticket sahibimi olduğunu kontrol etttir yoksa başkalarıda görebilir.
query string ile zararlı kod gönderebilir. ID yi html de basıyorsan XSS
Token oluşturmadan id ile işlem yapıyorsan ve bu id ile yapılan işlem güven zaafı verecek bir işlem ise CSRF
ön hazırlanmış sql durumcukları kullanmıyorsan Sql injection yiyebilirsin.
Bu açıklar ve problemler SADECE QUERYSTRING 'E haiz şeyler değildir. POST metodlarındada aynı problemlerle karşılaşabilirsin.
DrKill tarafından 26/Eki/14 20:20 tarihinde düzenlenmiştir -
işte bu yüzden mvc :)
kullanıcı id'sini post methoduyla alıp veritabanında taratıp ona göre modeli doldurup bir query yaratabilirsin ama proje illa asp.net mi olcak ?
-
@DrKill dediklerini kavram olarak duymuştum ancak pratiğim yok araştırıcam tek tek hepsini.
@erc asp.net olucak mecbur web uygulaması yapmak için başka bir dil bilmiyorum.Asp.net ide az biliyorum, takıldıkça yazıyorum takıldığım yerleri.Mvc olayını kısaca okudumda sanki bu normalde olan webform daha güzel ve kolay gibi geldi bana
-
Hannibal_King bunu yazdı
@DrKill dediklerini kavram olarak duymuştum ancak pratiğim yok araştırıcam tek tek hepsini.
@erc asp.net olucak mecbur web uygulaması yapmak için başka bir dil bilmiyorum.Asp.net ide az biliyorum, takıldıkça yazıyorum takıldığım yerleri.Mvc olayını kısaca okudumda sanki bu normalde olan webform daha güzel ve kolay gibi geldi bana
webform daha kolaydır tabi, sürükle bırak ile kod yazmaya alışmışsan :) ama mvc nin getirdiği bir çok yenilik var, ve özellikle proje genişledikçe karmaşıklığı azaltıp, yönetimi kolaylaştırırsın.
daha önce biraz uğraştım ben de mvc ile, şimdi derslerden 2 projeyi mvc ile yapmam gerekiyor, hiç haz etmesem de web tarafından mecburiyet..
QS olayına dikkat et.. direk sql koduna buradakini yerleştireyim deme. kullanabiliyorsan entity framework kullan o da olmadı parametres ile halletmeye çalış ya da sp. bu konuda makaleler falan bulabilirsin aslında biraz araştırma yapman lazım
-
querystring kullanmadım hocam public static nesne ile hallettim herşeyi parameters.addwithvalue() ile yaptım.Kullanıcı ticketler.aspx sayfasında mesajı_oku butonuna basınca sayfadakı statik nesneye mesajın yani ticketin id sini atıyorum sonrada kullanıcıyı response.redirect diyip ticketoku.aspx sayfasına gönderıyorum.O sayfadada listview var pageload da o listview i 1 önceki sayfadaki statik değişkenımden aldığım bilgi ile dolduruyorum. Bu arada static değişken kullanıcı online iken asla yok olmaz değilmi bellekten falan silinmez???
-
webci değilim hocam ama benim hatırladğım kadarıyla statik değişken kullanma buralarda. çünkü aynı anda başkası siteyi kullandığında o da o değişkeni değiştirecektir. mesela cemşit sitede ticket oluşturdu ve id yi 5 oldu diyelim, sonra mahmut siteye girdi ve o da aynı ticket id si de 7 oldu diyelim.. ilk giren cemşit in idsi de 7 olmuş oluyor. web tarafında o yüzden statik değişken bu tarz şeylerde kullanılmamalı.. nerede kullanılabilir? mesela bir dinamik sayaç olabilir..
burada statik değişken yerine cookie kullanabilirsin hocam. ya da session da tutabilirsin. mvc tarafında viewbag falan var, web forms da bunlar yok, onlarda da tutabilirdin..
yattım ben soru sorarsan yazamam haberin olsun.. iyi geceler kolay gelsin
unbalanced tarafından 27/Eki/14 03:20 tarihinde düzenlenmiştir -
Ben static değişken her kullanıcı için ayrı ayrı çalışıyor sanıyordum sen emin misin hocam dediğin gibi olduğundan çünkü benim yaptığım proje sırf ona dayanıyo eğer tüm kullanıcılar aynı nesneyi kullanıyosa bittim ben :( :( .Her session için umarım farklı farklı çalışıyodur.Web a atıp denemiştim önceki sürümü sorun yok diye hatırlıyorum ama kıllandım şimdi yine :)
-
@unbalanced hocam acı sonla karşılaştım malesef server a atıp denedim 1 arkadasım ile aynı anda girdik ve static nesne ikimizin ortak nesnesiymiş malesef :( yazdığım herşey yalan oldu.Kodda herşey static nesnelerden ibaret listeler static,kullanıcı giriş yaptıktan sonra static nesne yaratmıstım kullanıcının bilgilerini tutuyodum.Falan filan ne var ne yok statik yani :( :( Daha önce serverda denemiştim ancak o zaman koddada hata vardı koddaki hata bunu farketmemi engelledi.Ben şöyle düşünmüştüm; diyelim bir statik nesnemiz var ahmet siteye girdi sonrada ali girdi bu ikisi için ayrı ayrı çalışıyo diye düşündüm static nesneler ve kullanıcı logout olana kadar yaşıyor diye düşündüm nesne için.Özetle sadece tek kişiye hizmet veren on numara bi internet sitesi oldu :)
Artık her üyeye subdomain acarım her üyenin bi tane alt sitesi olur teker teker o subdomainlere yüklerim siteyi asıl domainde şifre ve kullanıcı adına göre o subdomaine atarım üyeyi :D :D
Cookie,session ve internet sitesinin çalışma mantığı ile döküman varsa atarsanız sevinirim bu başlık altından.Türkçe olursa iyi olur ingilizcem çok iyi değil.
-
evt hocam dediğim gibi statik nesnenin çalışma mantığı bu zaten.. subdomain biraz saçma geldi.. bunun yerine baştan yapmayı dene.. çok da zor olmayacak merak etme. cookie ve session kullanımı çok zor değil. youtube da örnek videolar falan bulaiblirsin ya da örnek makaleler. 5-10 dakikada gösterebileceği şeyler o kadar zor değil..
-
url re writing yap en güzeli
http://okanozdemir.com.tr/asp-net-url-rewriter-path-yapmak-url-rewriting-yapma-mapping-yapma-rewrite-asp-net.htm
