Php, parse_url ve http_build_url malforme adresler tespit ve XSS saldırıları önlemek için kullanılır?

0 Cevap php

Benim site kullanıcılarının adresler göndermek için izin istiyorum. Bu adresler daha sonra etiketlerin href nitelikleri de sitede işlenmiş olacaktır. Temel olarak, kullanıcı bir mesaj, bir url, sitem, bir etiket olarak sayfasında görüntüler daha sonra kullanıcı B yavru kedi resimlerini görmek için tıklar.

Ben javascript yürütme ve XSS saldırıları önlemek ve hiçbir hatalı biçimlendirilmiş URL'lerin ben üretmek çıkış vardır sağlamak istiyoruz.

Örnek: sözde yavru resimleriyle kullanıcı bir ileti hatalı biçimlendirilmiş bir url. Sitemin kullanıcı A'ın verilerden bir etiket oluşturmak için çalışır, daha sonra kullanıcı B çıkan linki tıklar. Kullanıcı A aslında başka bir siteye kurbanın çerezleri göndermek için bir javascript "onclick" olayı ekler bozuk url gönderdi.

Yani sadece doğru oluşturulmuş adresler, izin ve http / https protokolleri başka bir şey engellemek istiyorum. Ben bir url gibi görünmüyor, ve kullanıcı html beni sağlayarak değil, burada bir şey için izin değilim bu yana, ayrıştırma ve url reform yaparak kontrol etmek oldukça basit olmalıdır.

Benim düşünce parse_url biçimlendirilmiş URL'lerin bir hata ile başarısız gerektiğini, ya da '_' ile yasadışı karakterleri değiştirir. Ben de izin protokoller için url ayrılmış parçaları kontrol edebilirsiniz. Sonra http_build_url kullanarak bir url oluşturarak, ben parse_url ayrılmış parçalar almak ve doğru oluşturulacak bilinen bir url bir araya onları geri koydu. Yerine benim sayfa sanitised kırık url koyarak başarısız Yani ilk bu şekilde onları parçalayarak, ben kullanıcıya bir hata mesajı verebilir.

Soru kullanıcı bağlantıyı tıklarsa bu kötülüğü yapmaktan XSS saldırıları önlemek olacak, değil mi? Ayrıştırılır ve yeniden url daha kaçan gerekmez mi? Bunu yapmak için daha iyi bir yolu var mı? Bu standart php kütüphaneleri fonksiyonları ile artık çözülmüş bir sorun olmamalı?

Ben gerçekten bir ayrıştırıcı kendim yazmak istemiyorum ve ben bile normal ifadeler dikkate gitmiyorum.

Teşekkürler!

0 Cevap