DOMPurify ile XSS koruması

Merhaba

PHP ile geliştirilmiş HTMLpurifier , yazılımınıza entegre ettiğinizde, sizi XSS zafiyetlerinden korumayı hedefleyen bir kütüphanedir. Gelen kullanıcı talepleri sonucunda üretilen HTML sayfa üzerinde analizler gerçekleştirmektedir. DOMPurify ise benzer işlemin kullanıcı tarafında gerçekleştirmekte olan bir javascript kütüphanedir.

DOMPurify ve Özelliği

DOMPurify Javascript ile geliştirilmiştir özgür bir kütüphanedir. Obfuscate edilmemiş haline https://github.com/cure53/DOMPurify adresinden erişilebilir.

Çalışma mantığı; Document Object Model’a yazılmak istenilen HTML ‘i aşağıdaki şekilde DOMPurify’a gönderilmesi ile çalışır.. Eğer içerisinde XSS payloadı içeren bir HTML varsa ve bu kullanıcıya gösterilecekse, bu işlemden önce DOMPurify ile payload’lar temizlenebilir.

var clean = DOMPurify.sanitize(dirty);

DOMPurify, HTML tag’leri üzerinde analiz yaparak zararlı attribute’ları tespit etmektedir. DOMPurify kütüphanesinin kodları incelendiğinde analizin nasıl gerçekleştiği görülmektedir.

DOMPurify’i test etmek için http://lab.mehmetince.net/dompurify/ adresine göz atabilirsiniz. Sayfanın ikinci text alanında XSS payloadları barındıran bir html çıktısı bulunmaktadır.

Şu anda MathML, HTML5 ve SVG için destek vermekte olan DOMPurify hakkında güncel bilgileri takip etmek github adresini kontrol edebilirsiniz.