• 21-06-2007, 00:09:58
    #10
    <?php
    $kid = htmlspecialchars(strip_tags(mysql_escape_string(intval($_GET['kid']))));
    $sor = mysql_query("SELECT id,ad,kid FROM gazete WHERE kid=$id ORDER BY id");
    while($yaz=mysql_fetch_array($sor)){
    $ad = $yaz["ad"];
    $id = $yaz["id"];
    echo "<a href='oku.php?id=$id'>$ad</a><br>";
    }
    ?>
    Senin yazdığın hali ile SQL Injection yemez çünkü değişkeni dışarıdan almıyorsun direkt yazmışsın 1 diye. GET veya POST ile alıyorsan SQL Injection olur. Eğer GET ile alıyorsan yukarıdaki gibi kullanabilirsin
    Alıntı
    $kid = htmlspecialchars(strip_tags(mysql_escape_string(in tval($_GET['kid']))));
  • 21-06-2007, 00:15:02
    #11
    peki şöyle bir kodu düzenleseniz konuyu tam anlamış olacağım

    <?php
    $ad = $_REQUEST["ad"];
    $aciklama = $_REQUEST["aciklama"];
    $kayit = "INSERT INTO ben (ad,aciklama) values('$ad','$aciklama')";
    $sql = mysql_query($kayit);
    if(! $sql){
    echo "Veri eklenemedi";
    }else{
    echo "Veri eklendi";
    }
    ?>
  • 21-06-2007, 00:19:09
    #12
    <?php
    $ad = htmlspecialchars(strip_tags(mysql_escape_string($_REQUEST["ad"])));
    $aciklama = htmlspecialchars(strip_tags(mysql_escape_string($_REQUEST["aciklama"])));
    
    $kayit = "INSERT INTO ben (ad,aciklama) values('$ad','$aciklama')";
    $sql = mysql_query($kayit);
    if(! $sql){
    echo "Veri eklenemedi";
    }else{
    echo "Veri eklendi";
    }
    ?>
  • 21-06-2007, 00:25:54
    #13
    Alıntı
    '
    üstteki karakteride replace etmeyi unutmayın.eğer serverın php sürümü eskiyse çok zarar görebilirsiniz.

    hatırladığım kadarıyla php 4 ve üstünde bu karakter zaten server tarafından önüne
    Alıntı
    \
    getirilerek nötr ediliyor..

    eğer denemek isterseniz:
    küçük bir mail scripti ile deneyebilirsiniz.

    Alıntı
    <?php
    $mesaj="deneme ' dir";
    mail("mailadresin@uzanti.com","BASLIK",$mesaj);
    ?>
    eğer mailinize gelen mail:

    Alıntı
    deneme \' dir
    ise server kendi nötrleyip zararsız hale getiriyor.

    eğer

    Alıntı
    deneme ' dir
    bu şekilde ise scriptlerinizde replace edin yoksa çok zarar görebilirsiniz.
  • 21-06-2007, 02:19:45
    #14
    Üyeliği durduruldu
    sadece mysql_escape_string yeterlidir abartmayın arkadaşlar.
  • 21-06-2007, 02:29:36
    #15
    Misafir
    real escape daha iyidir
  • 21-06-2007, 09:59:34
    #16
    ben şimdi kişilerin sitelerini eklemelerini istiyorum

    $ad = htmlspecialchars(strip_tags(mysql_escape_string($_REQUEST["ad"])));
    $aciklama = htmlspecialchars(strip_tags(mysql_escape_string($_REQUEST["aciklama"])));


    bu kodlar yeterli midir?
    yoksa başka filtreler kullanmalı mıyım?
  • 21-06-2007, 10:02:50
    #17
    Üyeliği durduruldu
    muratmoon adlı üyeden alıntı: mesajı görüntüle
    sadece mysql_escape_string yeterlidir abartmayın arkadaşlar.
    katılıyorum inj. yemiyecem diye serverın anasını ağlatmaya hiç gerek yok
  • 21-06-2007, 11:41:01
    #18
    kerim2155 adlı üyeden alıntı: mesajı görüntüle
    ben şimdi kişilerin sitelerini eklemelerini istiyorum

    $ad = htmlspecialchars(strip_tags(mysql_escape_string($_REQUEST["ad"])));
    $aciklama = htmlspecialchars(strip_tags(mysql_escape_string($_REQUEST["aciklama"])));


    bu kodlar yeterli midir?
    yoksa başka filtreler kullanmalı mıyım?
    addslashes, mysql_escape_string yeterli çoğu fonksiyon iso desteklemiyor, sayfayı UTF-8 olarak yapsan daha iyi olur.