folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Php Ve XSS Korumasi (Soru)



Php Ve XSS Korumasi (Soru)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    Merhaba Murid kardeslerim. Ben bir adet php sistem gelistirmekteyim (sanki basliktan belli degilmis gibi yazim)
    CK editor veya tiny editor kullanarak kullanicinin bir yorum bildirim girmesini istiyecegim.

    buna karsin XSS'e karsi kullandigim htmlSpecialchars kodunun yeterli guvenlikte olmadigini ve ztn editorde bunu kullanamayacagimi dusundugumden nasil bir XSS filtrelemesine gitmem gerekli diye dusunmekteyim.


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    belli başlı kelime gruplarını replaceletmekten başka şansın yok hocam


    Bittik biz bittik
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    chelishky
    chelishky's avatar
    Kayıt Tarihi: 26/Mayıs/2008
    Erkek

    filter_var ya da strip_tags kullanabilirsin, daha geniş bir koruma sağlamak istiyorsan, bir fonksiyon yazıp, replace etmen gereken tüm verileri kontrolden geçirebilirsin ve fonksiyon temiz data döndürene kadar döngüde kalmasını sağlarsın.


    chelishky.wordpress.com|| Büyük devrimlere gereksinimin kalmayacak kadar devrimci kal yeter!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    netwalker
    netwalker's avatar
    Kayıt Tarihi: 30/Mayıs/2011
    Erkek

    xss fonksiyonu olarak en iyisi şuanda bu ;)

     

    <?php

     

    function xss_sql_filter($filtereddata,$htmlview) 

    {

            $fdata1  = array('javascript','vbscript','expression','applet','meta','xml','blink','link','style','script','embed','object');

            $fdata2  = array('iframe','frame','frameset','ilayer','layer','bgsound','title','base');

            $fdata3  = array('onabort','onactivate','onafterprint','onafterupdate','onbeforeactivate','onbeforecopy','onbeforecut');

            $fdata4  = array('onbeforedeactivate','onbeforeeditfocus','onbeforepaste','onbeforeprint','onbeforeunload');

            $fdata5  = array('onbeforeupdate','onblur','onbounce','oncellchange','onchange');

            $fdata6  = array('onclick','oncontextmenu','oncontrolselect','oncopy','oncut','ondataavailable');

            $fdata7  = array('ondatasetchanged','ondatasetcomplete','ondblclick','ondeactivate','ondrag');

            $fdata8  = array('ondragend','ondragenter','ondragleave','ondragover','ondragstart','ondrop');

            $fdata9  = array('onerror','onerrorupdate','onfilterchange','onfinish','onfocus','onfocusin','onsubmit');

            $fdata10 = array('onfocusout','onhelp','onkeydown','onkeypress','onkeyup','onlayoutcomplete');

            $fdata11 = array('onload','onlosecapture','onmousedown','onmouseenter','onmouseleave','onmousemove');

            $fdata12 = array('onmouseout','onmouseover','onmouseup','onmousewheel','onmove','onmoveend');

            $fdata13 = array('onmovestart','onpaste','onpropertychange','onreadystatechange','onreset','onresize','onunload');

            $fdata14 = array('onresizeend','onresizestart','onrowenter','onrowexit','onrowsdelete','onrowsinserted');

            $fdata15 = array('onscroll','onselect','onselectionchange','onselectstart','onstart','onstop');

     

            $nhtmlchar = array("<",">","(",")","'",";");

            $fhtmlchar = array("&lt;","&gt;","X","X","X","X");

     

            $filtereddata = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/','',$filtereddata);

     

    $datasearch   = 'abcdefghijklmnopqrstuvwxyz';

    $datasearch  .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    $datasearch  .= '1234567890!@#$%^&*()';

    $datasearch .= '~`";:?+/={}[]-_|\'\\';

    $filterwhile  = array_merge($fdata1,$fdata2,$fdata3,$fdata4,$fdata5,$fdata6,$fdata7,$fdata8,$fdata9,$fdata10,$fdata11,$fdata12,$fdata13,$fdata14,$fdata15);

    $found  = true; 

    for ($dnum = 0; $dnum < strlen($datasearch); $dnum++) 

    {

    $filtereddata = preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($datasearch[$dnum])).';?)/i',$datasearch[$dnum],$filtereddata);

    $filtereddata = preg_replace('/(&#0{0,8}'.ord($datasearch[$dnum]).';?)/',$datasearch[$dnum],$filtereddata);

    }

    while ($found == true)

    {

    $val_before = $filtereddata;

    for ($dnum = 0; $dnum < sizeof($filterwhile); $dnum++) 

    {

    $pattern = '/';

    for ($jnum = 0; $jnum < strlen($filterwhile[$dnum]); $jnum++) 

    {

    if ($jnum > 0) 

    {

    $pattern .= '(';

    $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';

    $pattern .= '|(&#0{0,8}([9][10][13]);?)?';

                            $pattern .= ')?';

    }

     

    $pattern .= $filterwhile[$dnum][$jnum];

    }

    $pattern .= '/i';

    $filtereddata = preg_replace($pattern,"[BAN]",$filtereddata);

    if ($val_before == $filtereddata) { $found = false; }

    }

    }

    print $filtereddata;

    }

    ?>


    2. dünya savaşı sıralarında faşist diktatörler mussolini ve hitler tüm işyerlerinde resimlerinin asılmasını emretmişlerdi.bunu içine sinmeden yapan bir kitapçının aklına müthiş bir fikir gelmişti ve beklemeden bunu yaptı.kitap vitrinine koyduğu bu iki diktatörün resimlerinin arasına dünya edebiyat tarihinin önemli isimlerinden victor hugo"nun önemli bir eserini koymuştu: "SEFİLLER".
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Elif - Efe
    undefined-01
    undefined-01's avatar
    Kayıt Tarihi: 19/Aralık/2003
    Homo

    batuhangoksu senin yazdiginda gordugum kadari ile < ve > karakterlerinide filtreliyor yani bir editor kullanamiyor olacagim.

     

    http://htmlpurifier.org/  buldum bu konuda daha onceden calismis arkadaslar varmi acaba ?


    Bu aralar fazla yogunum. Unuttugum seyler oluyorsa affola. DM vs atın.
Toplam Hit: 1149 Toplam Mesaj: 5