Doğru Cevap
-
function temizle($deger) { $deger = str_replace('{','',$deger); $deger = str_replace('?','',$deger); $deger = str_replace("'",'',$deger); $deger = str_replace('"','',$deger); $deger = str_replace('=','',$deger); }
kod kullanımı$degisken = temizle($_POST[gelen_textarea_degeri]); echo $degisken
-
siyahbeyaz
tüm genel karekterleri silip sadece harf ve sayılardan olusmasını ıstıyorsan
function temizle($s) { $s = preg_replace('/&.+?;/', '', $s); $s = preg_replace('/[^%a-z0-9 _-]/', '', $s); $s = preg_replace('/\s+/', '', $s); $s = preg_replace('|-+|', '', $s); return $s; }
bunu kullanabılırsın.12 yıl önce yazılmış -
muratmoon
İlerde bu sorunu yaşayan kişiler için doğru cevap olarak işaretlenen cevabın güvenlik sağlamayacağını not almak istedim.
Kaçış yapılması gereken tüm karakterlerin bunlarla sınırlı değil, ayrıca veriyi kullanacağınız yere göre (veritabanı, html, js, xml) kaçış yapılması gereken karakterle de değişeceği için güvenlik problemi yaşamanız muhtemel.
Son olarak kaçış işlemlerini kullandığınız karakter setine göre yapmazsanız yine güvenlik problemi oluşabilir.12 yıl önce yazılmış
-
Cevaplar
-
Sorunuza cevap olmayacak çünkü izlediğiniz yöntem bana göre yanlış, şunları deneyebilirsiniz.
1) Gönderileni olduğu gibi alır, gösterirken htmlspecialchars fonksiyonundan geçirirsiniz. Böylece içinde kod olsa bile güvenlik sorunu olmaz.
2) Gönderim sonrası strip_tags fonksiyonu ile gönderilen veriden html kodlarını silersiniz.