Forum
Sayın Üstatlar; (Özellikle Sayın Yavuz Filizlibay Üstadım)
Misal sizin makaleleriniz var; eğitimleriniz var, bunları sql e kaydetmek istediğinizde hangi veri türünü tercih edersiniz ? Yani makalenizdeki sql komutların çalışmaması için ne yaparsınız ?
Aslına bakarsanız daha sonra yazdığınız onlarca makale içerisinden "transaction" yazan makaleleri bulmak istiyorsunuz ve bu aramayı sql tarafında yapmak istediğinizde sql veri tipiniz mutlaka string tabanlı olmalı ki sql bunu ado.net ile xml tipinde veri aktarmadan kendi arama fonksiyonları ile sonuçlandırabilsin.
Peki eğer veri kayıt tipi olarak string türlerini seçerseniz ve komutlardan da etkilenmemek isterseniz ne yapmanız gerekir ?
Şimdiden çok teşekkür ederim geri bildiriminiz için.
Sağolun varolun.
Hürmetlerimi arz ederim.
Merhaba
Her tabloda bir ID alanı olur, integer tipinde, bu da primary key - clustered index olur.
Genel alanlar için genelde nvarchar kullanabilir, limit vermek gereksiz yere disk üzerinde alan kaplamaz.
Peki değerli üstat, makalenin içerisinde bir sorgu var ise bunun yürütülmesini nasıl engelleriz ?
Makale içerisindeki sorguyu çekmesi gerekir, direk tüm makaleyi çekip içindeki sorguları çalıştıramazlar herhalde
Değerli üstat, şunu demek istemiştim, sql server'a bu makale kayıt edilirken bir enjeksiyon gibi makale içerisindeki sorguları yürütmeye başlamaması için sorguları etkisiz hale nasıl getirebiliriz sizce ?
Yani sql server'ın makaledeki sorguları okuyamaması için ... Yani misal adam yorum yapıyorum diye ya da makaley yazıyorum diye sql sorgusu yazarsa nasıl bunu kayıt ederiz ? Kayıt ettikten sonra da nasıl orjinal haline getirilebilir ?
Hürmetler...
En güvenilir yolu, bu sorugları jpeg olarak kaydedebilirsiniz.
Misal, genelde yorum yapılan ya da eğitim dizisi hazırlanan internet sitelerinde de durum genelde böyle midir ? Enjeksiyonlardan korunabileceğimiz hazır bir filtre fonksiyonu yok sanırım...
Sql injection dan korunmanın en güvenli yollarından biri, entity framework kullanmaktır, direk kod içerisinde sql cümleleri kullanmamak gerekir.
Sorguyu Stored Prosedure üzerinden parametre ile yapıyorum ama bir yorumu kaydederken nasıl güvenli bir şekilde sql server'a gönderebilirim, olur da içerisinde bir kod var ise nasıl yürütülmesini engellerim ve korunurum diye düşündüm.
Makaleyi ya da yorumu, stored prosedure parametresine resim olarak tanımladıktan sonra c# ile direkt mi göndermemiz gerek peki ?
Ali Bey selamlar,
Bahsettiğiniz süreçler yazılım aşamasında gerçekleştirilmektedir.StoreProcudure de kullanıyor olsanız parametre gödnerim işlemini AddParameter() gibi methodlar kullanarak yapabilirsiniz.
cmd = new SqlCommand("sp_GetUser", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@Username", Username);
gibi örnek verilebilir.Bu işlemler veritabanı tarafında değil kod tarafında yapılarak çözülüyor.En azından ben öyle çözüyorum.Yani sql ile ilgili bir makalenin içeriğini parametre olarka bu şkeilde gönderirseniz bir sorun çıkmaz.makale değil direk parametreye "drop table tablo_adi" gibi bir değer de verseniz bunu text olarak db ye yazacaktır.