• 02-09-2009, 21:58:56
    #1
    Arkadaşlar şuan localdeki forumumda xss açığı buldum. bi eklentiden kaynaklanıyor.

    linkte <script> gibi html tagları varsa direk exit(); nasıl yaparız ? strip_tags komutu htmlyi ayıklıyor ama if e nasıl dökerim çözemedim ?

    mesela eklentide şöyle bir kod var

    return "<a href=\"./deneme-{$str}.html\">{$str}</a>";

    nasıl yapabilirim de html kullanıldığında sayfayı durdursun?

    if(strip_tags(nasılolur)){exit();} ?
  • 02-09-2009, 22:39:48
    #2
    Üyeliği durduruldu
    sayfayı neden durduruyorsunki direk sil gitsin
  • 02-09-2009, 22:53:52
    #3
    function html_kontrol($uysal) 
    {
        $rockci = strip_tags($uysal);
        if ($uysal != $rockci) return FALSE;
            else return TRUE;    
    }
    
    $uysal_rockci = '<p><a href = "index.php">anasayfa</a></p><br/> ';
    if (!html_kontrol ($uysal_rockci) ) die('html kodu var, betik durduruldu');
    kestirmeden bir yöntem olsun bu da,
    işe yarar belki
  • 02-09-2009, 23:12:33
    #4
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    sayfayı neden durduruyorsunki direk sil gitsin
    Yani Silmek daha mantıklı.
    Ama sayfada saldırı oldugu bilinsin diyorsan;

    function kontrol($bak){
    $bak = str_replace("<script","*saldiri(<script)",$bak);
    $bak = str_replace("<meta","*saldiri(<meta)",$bak);
    $bak =trim($bak);
    return $bak;
    }
    
    echo kontrol($degisken);
    
    }
    bu şekilde bir fonksiyon kullanabilirsin ama ben durduracam diyorsan;

    function kontrol($bak){
    $bak = str_replace("<script","*saldiri(<script)",$bak);
    $bak = str_replace("<meta","*saldiri(<meta)",$bak);
    $bak =trim($bak);
    return $bak;
    }
    
    $hemen_bakiyom_abi = kontrol($degisken);
    
    if($hemen_bakiyom_abi == "*saldiri(<script)")
    {
    exit(); // burdan ötesi yasak
    }
    else
    {
    echo $degisken; // temiz abi devam et
    }
  • 02-09-2009, 23:41:40
    #5
    Üyeliği durduruldu
    strip_tags in kullanımı;
    http://www.programlamatv.com/ders/ph...me-strip-tags/
  • 02-09-2009, 23:57:18
    #6
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    abi zaten oraya bakarken aklıma geldi sorayım dedim yorumda yazdım konuna.
    Aklıma az öncede bişi geldi. mesela phpde süper globallerde remote addr ile ip adres alıyoruzya bir globalle acaba linki alabiliyormuyuz ? eğer alabiliyorsak uysal_rockcu nun yazdığı fonksiyon daha kolay olmaz mı ?

    edit:// yazdığınız fonksiyonları kullanamayınca üstekini yazdım.
  • 03-09-2009, 00:06:36
    #7
    By_System adlı üyeden alıntı: mesajı görüntüle
    Aklıma az öncede bişi geldi. mesela phpde süper globallerde remote addr ile ip adres alıyoruzya bir globalle acaba linki alabiliyormuyuz ?
    tam anlayamadım ama aradığınız bunlardan biri olabilir mi.
    echo $_SERVER['REQUEST_URI'];
    echo $_SERVER['QUERY_STRING'];
    diğer tümü için ;
    echo '<pre>';
    print_r($_SERVER);
    echo '</pre>';
  • 03-09-2009, 00:07:51
    #8
    $_SERVER['PHP_SELF'] komutuymuş. ama yapamadım galiba olmuyor bu.
  • 03-09-2009, 00:20:22
    #9
    function html_kontrol($uysal) 
    {
        $rockci = strip_tags($uysal);
        if ($uysal != $rockci) return FALSE;
            else return TRUE;    
    }
    
    
    if (!html_kontrol ($_SERVER['REQUEST_URI']) ) die('linkte html kodu var, o varsa ben yokum ...');
    böyle bişey olabilir mi...