XSS PHP Log Filtre?

2 Cevap php

Ben doğru olduğu için kullanıcı girişi kontrol eder ve eğer doğru değilse, bir log dosyasına yazar benim admin panelinde bir günlük işlevi var. Oturum Bu günlük dosyası admin yazılır

Ben güvenlik açıkları için sitemde test edildi ve ben tam bir XSS açığı kullanarak benim sunucu yararlanma başardı. Ben bu fonksiyonu sayesinde girişini kontrol ederek günlüğe kaydedilen girişini süzmek için çalıştı:

function isXSS($in){
    return preg_match("[<>(%[0-9a-fA-F]{2}+)]", $in) == 1;
}

ama bu bir nefret XSS solucan gibi paranoidly işaretleyiniz her şey ya olur, ya da ortak XSS enjeksiyonları görmezden. Ben sorun + nicelik olduğunu düşünüyorum, ama diğer PHP regexes bu izin duydum.

2 Cevap

Eski güzel nesi var htmlspecialchars? Potansiyel kötü niyetli kullanıcıların izlemek isteyebilirsiniz neden ben görüyorum, ama sadece bunun yerine güvenlik deliklerini kapatan daki enerji yatırım yapıyorsanız, o zaman hiç gerek yok.

Eğer kazanmak asla bir savaş olduğunu, enumerate badness çalışıyoruz. Bunun yerine, yalnızca gibi bir kitaplığı aracılığıyla iyi olduğunu biliyorum, biçimlendirme yoluyla izin alınmalıdır htmlpurifier

Ayrıca, ben {2}+ sözdizimi hakkında emin değilim, ama bu ne istediğinizi daha yakın olduğuna inanıyorum:

"[<>(%[0-9a-fA-F]{2,})]"