• 10-08-2010, 12:59:41
    #1
    merhaba arkadaşlar. Form güvenliği sağlamak için zararlı kodlardan kurtulmak istiyorum google ve forumda araştırmalar yaptım 2 tane kod buldm hangisini kullanmalıyım sizce?

    htmlspecialchars(strip_tags(mysql_escape_string($degisken)))
    yada


    <?php
    
    function filitre($q) {
    
    $q = str_replace("`","",$q);
    
    $q = str_replace("&","",$q);
    
    $q = str_replace("%","",$q);
    
    $q = str_replace("'","",$q);
    
    $q = str_replace("<","",$q);
    
    $q = str_replace(">","",$q);
    
    $q = str_replace("?","",$q);
    
    $q = str_replace("script","",$q);
    
     
    
    $q=trim($q);
    
    return $q;
    
    }
    
    ?>


    Hangisi Daha güvenlidir? Teşekkürler.
  • 10-08-2010, 13:03:58
    #2
    ilki güzelmiş. xss içinde script kelimesini document. kelimesini falan eregi replace ile anlamsız şeylere çevirebilirsin. bunun yanında captcha, token gibi şeyler kullanabilirsin. hatta giriş formları için küçük bir koruyucu kod,

    $_SESSION[deneme]=$_SESSION[deneme]+1
    sleep($_SESSION[deneme]);

    bu kodla her giriş denemesinde kullanıcı 1 sn fazla bekletilir. böylece ardı sıra denemeler zorlaştırılır.
  • 10-08-2010, 13:07:55
    #3
    zee adlı üyeden alıntı: mesajı görüntüle
    ilki güzelmiş. xss içinde script kelimesini document. kelimesini falan eregi replace ile anlamsız şeylere çevirebilirsin. bunun yanında captcha, token gibi şeyler kullanabilirsin. hatta giriş formları için küçük bir koruyucu kod,

    $_SESSION[deneme]=$_SESSION[deneme]+1
    sleep($_SESSION[deneme]);

    bu kodla her giriş denemesinde kullanıcı 1 sn fazla bekletilir. böylece ardı sıra denemeler zorlaştırılır.
    tşekkür ederm session özellkle bir çok arkadaşın işine yarar
  • 10-08-2010, 13:10:39
    #4
    Üyeliği durduruldu
    İlk kodu kullanmanızı öneririm.Formdan gönderilen zararlı kodları direk siler.
  • 10-08-2010, 13:15:13
    #5
    $degisken = $_POST['gelen'];
       $degisken = htmlspecialchars(strip_tags(mysql_escape_string($degisken)))
    hatalı neden diye soracak olursanız
    htmlspecialchars fonksiyonu html taglarını (< ve > sembollerini &gt; &lt; ye çeviriyor) html kullanımını engellemiş olursunuz.
    strip tags ise html kodlarını tamamen yok eder.
    mysql real escape string fonksiyonu ile veritabanına girilecek verilerin escape edilmesini sağlar
    doğru kullanım:
    $degisken = $_POST['gelen'];
       $degisken = strip_tags(mysql_escape_string($degisken));
    böyle olmalıdır.
  • 10-08-2010, 13:22:36
    #6
    Cycl0ne adlı üyeden alıntı: mesajı görüntüle
    $degisken = $_POST['gelen'];
       $degisken = htmlspecialchars(strip_tags(mysql_escape_string($degisken)))
    hatalı neden diye soracak olursanız
    htmlspecialchars fonksiyonu html taglarını (< ve > sembollerini &gt; &lt; ye çeviriyor) html kullanımını engellemiş olursunuz.
    strip tags ise html kodlarını tamamen yok eder.
    mysql real escape string fonksiyonu ile veritabanına girilecek verilerin escape edilmesini sağlar
    doğru kullanım:
    $degisken = $_POST['gelen'];
       $degisken = strip_tags(mysql_escape_string($degisken));
    böyle olmalıdır.
    İçimi okudun tam bunu sormaya foruma gelmiştim

    edit:
    sadece bunu kullansam güvenlik sorunu olur mu?

    $mail= htmlspecialchars($_POST['form']);
  • 10-08-2010, 13:31:15
    #7
    Üyeliği durduruldu
    mysql real escape string i magic quota ile bereber kullanmaniz gerek. ilk filtre daha basarili gorunebilir ama o zamanda orjinal veriyi kaybetmis olursunuz