HTML PHP JavaScript içeren olmadığını kontrol edin

5 Cevap php

Ben kullanıcı sunulan HTML herhangi bir javascript olup olmadığını kontrol etmek gerekir. Doğrulama için PHP kullanarak Im.

Herhangi bir yardım için teşekkür ederiz!

5 Cevap

Bu farklı bir yaklaşım almak ve istemediğiniz bir şey filtrelemek için HTML Purifier gibi bir şey kullanmak daha iyi olabilir. Ben güvenle aslında düzgün HTML ayrıştırma olmadan javascript herhangi olasılığını ortadan kaldırmak için çok zor olacağını düşünüyorum.

Eğer Cross-Site Scripting (XSS) karşı kendinizi korumak istiyorsanız, o zaman daha iyi bir blacklist daha whitelist kullanmalısınız. Çok olduğundan many aspects you need to consider when looking for XSS attacks.

Sadece tüm HTML etiketlerinin bir listesini yapmak ve diğer tüm etiketler / özelliklerini izin ve kaçış / kaldırmak istiyorum bağlıyor. Ve XSS saldırıları için kullanılabilecek bu özellikleri için, sadece zararsız değerlere izin vermek değerlerini doğrulamak.

Tamam, hepsi burada saf olamaz izin:

<script> "<!-- </script> -->"; document.write("hello world"); </script> (regexadvice tarafından önerilen filtreleri geçmelidir)

filtreleme-out javascript değil, bazı hızlı kesmek, iyice ve düzgün yapmak gerekiyor demektir, güvenlik-kritik bir şeydir.

You could remove the script tags as Pawka states using regular expressions. I found a thread on this here.

Temelde bu:

$list=preg_replace('#<script[^>]*>.*?</script>#is','',$list);

Kod bana göre yazılı değil o sayfaya, değil.

Sen <script> etiketleri taramak gerekir ama aynı zamanda onclick="" veya onmouseover="", vb gibi özellikleri taramak gerekir .. o olmadan javascript olabilir script etiketleri için ihtiyaç.