Html Purifier Hatası
-
Herkese merhabalar,
Form alanımda tinymce editör kullanıyorum haliyle form dışardan post alırsa xss açığı ortaya çıkıyor bende html purifier kullanıyorum ancak sorun oluşuyor belirli taglara izin verip o dagların sadece belirli özelliklerine yani a tagının birtek hrefine izin vermek gibi olay yapıyorum ama veri tabanına kayıttan sonra;
link <p><a href="http://www.sanatsozluk.com">www.sanatsozluk.com</a> </p> olması gerekiyorken <p><a href="%5C">www.sanatsozluk.com</a> </p> şeklinde oluyor.
resim ise <p><img src="ressam.jpg" alt="ressam.jpg" /></p> olması gerekirken <p><img src="%5C" alt="ressam.jpg"" /></p> oluyor.
Hatta classı kullanmak için yazdığım yani verileri süzdüğüm fonksiyonu da aşağıya ekliyorum :
function removeXSS($data,$moreelem = NULL,$moreattr = NULL)
{
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8');
$config->set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config->set('HTML.AllowedAttributes', '*.style,a.href,a.title,img.src,img.alt,img.title,img.width,img.height'.$moreattr);
$config->set('HTML.AllowedElements', 'a,strong,span,em,p,u,i,b,img,sup,sub,small,ul,li,ol,big,code,blockquote,hr,h1,h2,h3,h4,h5'.$moreelem);
$config->set('CSS.AllowedProperties', array('float', 'color','background-color', 'background', 'font-size', 'font-family', 'text-decoration', 'font-weight', 'font-style', 'font-size'));
$config->set('AutoFormat.RemoveSpansWithoutAttributes', true);
$config->set('AutoFormat.RemoveEmpty', true);
//$config->set('AutoFormat.Linkify', true);
// ayarlarımızı kaydedelim
$purifier = new HTMLPurifier($config);
// $dirty_html kullanıcıdan gelen güvenilmez veriler
$clean_html = $purifier->purify($data);
return $clean_html;
}
Biri allah rızası için yardım etsin kafaları yemek üzereyim.
-
upp akşam üstü iş sonrası gelenler için