Doğru Cevap
-
mysql_real_escape_string, connection gerektirdiği için birebir aynı işlevi yapan
function escape_string($str) { return addcslashes(stripslashes(trim($str)), "\x00\x1a\x22\x27\n\r"); }
fonksiyonunu kullanabilirsin.
Önemli nokta şu: db'ye asla kullanıcı verisini değiştirerek koyma, escape ederek koymalısın. escape ile replace aynı şeyler değildir. escape ettiğin takdirde veri güvenli olarak geçiş yapar fakat değişmez. Bu fonksiyon veriyi güvenli hale getiriyor, replace etmiyor.
Database'den aldığın verileri de htmlspecialchars fonksiyonu ile ekrana basarsan xss gibi açıkları kapatırsın.-
huseyiniskender
Yazmış olduğunuz tavsiyeleri dikkate alacağım teşekkür ederim.13 yıl önce yazılmış
-
Cevaplar
-
mysql_real_escape_string() kullanmalısın.
-
huseyiniskender
Cevap yazdığınız için çok teşekkür ederim, yazmış olduğunuz kodun işlevi tam olarak nedir, eğer tırnak, noktalı virgül vb. karakterleri temizliyorsa bu durum zaten yukarıdaki fonksiyonda halledilmemiş mi, vermiş olduğunuz kodu kullanmazsam ne gibi hatalarla karşılaşabilirim. Sanırım biraz fazla soru sordum kusura bakmayın, ilginiz için yeniden teşekkürler.13 yıl önce yazılmış
-
-
1. $gkodt1 ile $dkodt1 aynı?
2. mysql_real_escape_string(), addslashes, htmlentities gibi fonksiyonlardan yararlanabilirsin.
3. Alfanümerik olmayan şeyleri kontrol etmeye çalışıyorsan ve bu fonksiyondan dönen veriyi kullanıcı adı ve parola gibi alanlarda kullanacaksan böyle bir kontrol yerine A-Za-z0-9 kontrolleri yapsan daha kolay olur, sen burada ½, #, £, < gibi karakterleri kontrol dışında tutmuşsun.
4. Kullanıcı adında _ ve - kullanılamasın mı?-
huseyiniskender
ilginiz için teşekkür ederim, sanırım eklediğim ascii kodlar sistemde dönüştürülüp öyle ekrana basıldı, fonksiyonun tam halini ekteki txt dosyasından bakarak inceleyebilirsiniz.13 yıl önce yazılmış -
necmettin
Amaç kullanıcıdan gelen kullanıcı adı ve parola alanlarını güvenli hale getirmek olmamalı, güvenli hale gelene kadar kullanıcıdan yenisini istemek olmalı. Yani kullanıcı olmadık bir karakter kullandığında onu kabul etmemelisin, "düzgününü gir" demelisin. Senin yazdığın fonksiyonla kullanıcı adında her türlü karakter kullanılabiliyor, oysa orada verdiğin karakterler (- ve _ hariç) kullanılamamalı. Çözüm karakterleri HTML entity karşılıklarıyla değiştirmek değil kullanıcının o karakterleri kullanmasını engellemektir.13 yıl önce yazılmış
-