PHP Markdown XSS Temizleyici

4 Cevap php

Ben PHP Markdown çıkışında filtre XSS açıklarını yardımcı basit bir PHP kitaplığı için arıyorum. I.E. PHP Markdown gibi şeyleri ayrıştırmak:

[XSS Vulnerability](javascript:alert('xss'))

Ben çevresinde bazı okuma yapıyor ve ben burada konu oldu this soru üzerinde bulduk iyi oldum.

HTML Arıtma şey orada daha genel olup olmadığını merak ediyordum (nearly only) çözüm iyi gibi görünüyor olsa da? Bunu yaptıktan sonra mükemmel çalışmak istiyorum gibi görünüyor olsa da HTML Arıtma, biraz özellikle benim ihtiyaçları için sağlam, hem de yapılandırmak için bir ağrı gibi görünüyor.

Biraz daha az sağlam ve yapılandırılabilir olabilir ama yine de sağlam bir iş yapabilir orada başka bir şey var mı? Veya sadece kazmak ve benim ihtiyaçları için HTML Arıtma yapılandırmak için çalışıyor başlamalıyım?

EDIT FOR CLARITY: Ben köşeleri ya da benzeri bir şey kesmek için aramıyorum. Bir şey kullanarak da bir seçenek olmasa da HTML Arıtma sadece ince taneli kontrolü ve çok kontrol sadece basit gerekli değildir, basit bir küçük proje için bir sürü sunuyor. Ben bir şey simpler veya less robust isterken nereden geldiğini budur.

Ayrıca, ben önerileri htmlspecialchars(), strip_tags() ya da benzeri bir şey kullanmak için NOT bakarak son bir not var. Zaten benzer bir şekilde onu sterilize Ekstra PHP Markdown gömülü HTML izin vermemek. I prevent XSS vulnerabilities in PHP Markdown OUTPUT yollarını arıyorum.

Teşekkürler.

4 Cevap

Bunu yapmak için, HTML Purifier dışında herhangi bir araç duymadım - ve HTML Arıtma gerçekten iyi bir üne sahip.

Belki evet, "a bit robust" ve "a pain to configure" var; , ama bu belki de en çok kullanılan, ve PHP test, çözümü mevcuttur; Böyle önemli bir bileşeni seçmek zorunda ve bu önemli kriterlerdir.

Ben senin yerinde olsaydım o investing yarım gün düzgün yapılandırmak anlamına gelse bile, ben muhtemelen HTML Arıtma seçiyor.

Çok sağlam diye bir şey yoktur. "Dezenfeksiyon" HTML hard. Bunu işlemek için kesilen herhangi köşeler daha basit sinsi patlatır sonuçlanması muhtemeldir. Hatta karmaşık eski HTMLPurifier, onun en iyisi üne sahip, geçmişte aracılığıyla tehlikeli biçimlendirme sinsi birden fazla yol aldı!

Metin-biçimlendirme Solüsyon tehlikeli HTML çıkartamıyorsa Ancak eğer, o zaman eksik ve IMO değiştirilmesi gerekir. PHP Markdown ile javascript: URL'ler izin veriyorsa o oldukça ağlanacak temel kusur ve ben başka bir şey doğru olsun güven sanmıyorum.

HTMLPurifier ince bir cevap ve belki de en sağlam çözümdür.

Bu nispeten güvenli bir şekilde Markdown kullanmak da mümkündür, ancak doğru şekilde kullanmak zorunda. Bak, güvenli Markdown nasıl kullanılacağına ilişkin ayrıntılar için here. Bunu güvenle nasıl kullanılacağı hakkında ayrıntılı bilgi için linke bakınız, ancak kısa versiyonu şudur: safe_mode ayarlamak ve ayarlamak için, en son sürümünü kullanmak önemlidir enable_attributes=False.

Ben bir öneri vardı, ve ben asked on SO to find out if it would work ama ne yazık ki, kapalı ve bu soruya bir nüsha olarak kutlandı.

Benim önerim Markdown kodunu değiştirerek ve sadece bağlantıları ve görüntü kaynağı http://, https:// veya ftp://, hangi gerekli tüm ortak protokolleri kapsamaktadır başlamak için izin veriyor. Bağlantı bunlardan biri ile başlamazsa, o çıkışı değişmeden bırakılmalıdır.