v2.5.2
Giriş yap

Localde çalışıyor, sunucuda xss açığı var.

deadmonster
562 defa görüntülendi

Bir iletişim formum var, localde çalışıyor, strip_tags() ile xss açıklarını önlüyorum ama sunucuda script yazınca hala xss açığı devam ediyor.
<pre>

$adsoyad = p("name_surname", true);
$email = p("email", true);
$konu = p("subject", true);
$msg = p("message", true);

</pre>

post'u p() fonksiyonu ile alıyorum :
<pre>

function p($par,$kontrol=false){
if ($kontrol == true){
	return trim(strip_tags($_POST[$par]));
}else{
	return $_POST[$par];
}

}
</pre>

ama hala script alert yazınca alert çalışıyor :(

Cevap yaz
Cevaplar (3)
fatihozpolat
1251 gün önce

PHP:strip_tags bu adresi incelersen uyarı kısmında bu fonksiyonun XSS açığı engelemek için kullanılmaması gerektiğini söylüyor, bunun yerine htmlspecialchars kullanmalısın.

deadmonster
1251 gün önce

Şu an deneme imkanım yok ama (evde değilim) benim yaptığım kodlarda ne hatası var?

venloress
1251 gün önce

Şu şekilde bir kullanım yaptığınızda sorununuz çözülecektir.

$_POST = array_map(function($post){
        return htmlspecialchars($post);
    },$_POST);