Querystring'den Kelime Alınca Nelere Dikkat Etmeliyiz?
-
Selam millet,
Sitenin sayfaları arası bilgi taşırken QueryStringde dönen veriler siteye saldırı yapmak için girenlere büyük kolaylık sağlıyor malumunuz üzere.
Eğer bu QueryString'de rakamsal bir değer taşıyorsak kontrolu biraz daha kolay (sayfa.aspx?id=23). Harfmi rakam mı kontrolu ile güvenliği sağlıyoruz. Ancak kelime taşındığı zaman (sayfa.aspx?adi=ali-ata-bak) rakam kontrolu gibi kolay olmuyor. Burda nelere dikkat etmeliyiz? Yani database'yi ne yaparsak korumuş oluruz. Delete,Update,Select gibi t-sql kodlarını yememesini nasıl sağlarız? Şimdi ben QueryStringde "delete" harfini silerim ancak bu defa orjinal içerikde de "delete" kelimesi geçince onuda silmiş oluyorum bölelikle sıkıntı yaşamış oluyoruz.
-
querystring le ne tür bi yazı çekmen gerekir ki?
post metoduyla göndersen daha sağlıklı değil mi?
,,,,,
örneğin delete geçen bir yazı var, bir fonksiyon oluşturup bu delete kelimesini örnegin -memelete- diye değiştirirsin db ye öyle kaydedersin, bu texti çekerkende yine bir fonksiyonla, -memelete- kelimesini delete ye çevirirsin olur biter. -
acemi-webci bunu yazdı:
-----------------------------
querystring le ne tür bi yazı çekmen gerekir ki?
post metoduyla göndersen daha sağlıklı değil mi?
,,,,,
örneğin delete geçen bir yazı var, bir fonksiyon oluşturup bu delete kelimesini örnegin -memelete- diye değiştirirsin db ye öyle kaydedersin, bu texti çekerkende yine bir fonksiyonla, -memelete- kelimesini delete ye çevirirsin olur biter.
-----------------------------urlWrite için queryString kullanmak zorundayım yoksa benımde çok sevdiğim birşey değil heleki harfli birşey kullanmam gerekiyor ise.
Hocam kullanıcı içeriğinde "memelete" diye birşey de ekliyebilir o zamanda çakışır verdiğin örnek. Ben daha çok bir fonksyon yapıp tüm zararlı olabilicek içerikleri orda toplamak istiyorum.
-
ado.net kullanıyorsan,parametre kullan t-sql cümleciklerinde,
zaten entity framework veya linq to sql kullanıyorsan injection yemek biraz zor (:
-
SharpShooter bunu yazdı:
-----------------------------
ado.net kullanıyorsan,parametre kullan t-sql cümleciklerinde,
zaten entity framework veya linq to sql kullanıyorsan injection yemek biraz zor (:
-----------------------------ado net kullanıyorum ancak parametreler tek başına yeterli olucakmıdır ?
-
Bilmiyorum istediğin cevap mi ama klasik aspde genellikle 'or' 'delete' 'update' 'where' 'union' gibi şeyleri nullstring ile replace eden bi fonksiyon yazılır query fonksiyondan geçirilip öyle kullanılır :) böylece db işlemi veya kod sokma işlemi yapılamaz :)
-
delete select vs kelimerlerini boşverip tırnak slash eksi işaretlerini uygun kodlarla değiştirmeyi nedesen. Ascii olarak hepsinin bir kodu var.tırnak işaretini Lj ile değiştirirsen kayıtta sorun çözülür. sayfanın charset ayarlarını doğru yaparsan sorun çıkmaz diye düşünüyorum.kullanıcının karşısına &$304; gibi bir karakter çıkması hoş dğeil.
-
Tırnak, <, > gibi zarar vereceğini düşündüğün şeyleri silmelisin.
Ayrıca sadece select gibi kelimeleri silmek pek mantıklı olmaz. Sileceksen SELECT * gibi kelimeleri silmelisin. Bir başka örnek ise "Update
-
o zaman QueryString ile sadece özel karakterlerin önlemini alsam yeterli olur mu ? Sql Injection kullanımında geçerli olanları yani ?
-
Enjeksiyon u engellemiş olursun ışte :) benim tavsiyem db ye yazma işleminde query verisini kullanmaman tehlikeye daha açık olduğu için :) sadece arama vs de kullan en iisi :)
-
Db'ye yazma işlemlerinde kullanmam hocam ancan urun detay gibi sayfalarda select yaparken kullanıyorum ordanda içeri injection atılabilyor.
Aklınıza gelen sql injectionda kullanılan özel Karakter listesini yazarmısınız buraya
' ==> Tek tırnak
< ==>Küçüktür
> ==>Büyüktür