• 30-11-2006, 19:26:21
    #10
    Üyeliği durduruldu
    Psych0: strval bi güvenlik sağlamaz. Ayrıca type casting öyle de yapılmaz. Bilgi eksikliğin var biraz.

    altayalp: Detaylı anlatmamı istiyorsan bak sorunlar şunlar.

    Öncelikle iki fonksiyonu aynı yerde kullanmışsın, baştan yanlış çünkü ikisinin görevi farklı. MySQL'e kayıt için başka HTML için başka fonksiyon kullanman lazım.

    İkinci sorun ise mysql_real_escape_string zaten özel karakterleri \ ile escape eder, siz ayrıca tekrar addslashes yaparsanız \\ şeklinde gereksiz bi escape işlemi daha yapmış olursunuz.

    Ama dediğim gibi zaten MySQL ve HTML'i birbirine karıştırarak baştan mantık olarak yanlış başlamışsınız.
  • 30-11-2006, 20:19:36
    #11
    muratmoon teşekkürler. söylemek istediğiniz anladım. iki ayrı fonksiyon birisi kayıt diğeri html için. fakat bu fonksiyonda get_magic_quotes_gpc() ile kontrol ettiğimden tek slash ekliyor. yani addslashes'i kontrol edip kullanıyorum. bu şekilde tek \ eklemesi gerekmez mi?
  • 01-12-2006, 14:26:56
    #12
    Üyeliği durduruldu
    Hayır ne olursa olsun iki tane gelecektir.

    Magic Quotes Kapalı ise;
    mysql_real_escape_string zaten bi kere ne olursa olsun \ ile escape yapacak. daha sonra get_magic_quotes_gpc false döneceği için bide addslashes peşine escape yapacak.

    Magic Quotes Açık ise;
    sistem zaten her dış veriyi otomatik addslashes ile escape etmiş olacak. bide üzerine mysql_real_escape_string her halikarda çalıştığı için yine 2 escape işlemi olacaktır.
  • 05-12-2006, 04:17:16
    #13
    Bartuc adlı üyeden alıntı: mesajı görüntüle
    eğer bahsettiğin şey union select ile yapılan sql injection'sa;

    sayfanın başına
    if ((isset($_GET["id"])) && ($_GET["id"] <= "0")) {
    echo "hack girisimi!!!";
    die();
    }
    ekleyerek kurtulabilirsin. tabi id yerine başka değişken varsa kodu editlemen gerekiyor..
    http://cirkinordek.com/blog.php?id
  • 05-12-2006, 08:25:03
    #14
    Kurumsal PLUS
    sağlam bir güvenlik var işte daha nolsun

    zaten o kodu koymasam da, blog.php?id şeklinde görüntülenebilecek düzgün bir sayfa yok. yani kaşınmayan adam denemez böyle bişeyi

    daha aşabilen görmedim
  • 05-12-2006, 08:31:55
    #15
    Misafir
    http://cirkinordek.com/blog.php?id=1232sdasd'

    E Bu Hata Veriyor

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*\'1232sdasd\\\'\'*' at line 1
  • 05-12-2006, 08:35:51
    #16
    Kurumsal PLUS
    baya bir deneme yaptım ama ben sql injection yapamadım. bu verdiğim kod da zaten yazdığım gibi sadece union select olayından kurtulmak içindi.

    eğer açık varsa yazın düzeltiim buraya da kodları vereyim. halka açık script yaratmak kolay değil, ama açık olsaydı çoktan bildirilirdi diye düşünüyorum. tabi ki kimse "benim scriptimde açık yok" diyemez
  • 05-12-2006, 08:41:58
    #17
    Kurumsal PLUS
    kullandığım tam fonksiyon şu sql injection'a karşı.. süperdir manyaktır demiyorum kırılamaz demiyorum sadece ben bunları kullanıyorum diyorum.. eğer sql injection yiyosa tabi ki geliştiririm..

    if (get_magic_quotes_gpc()) {
    $value = stripslashes($value);
    if ($value <= '0') {
    die("hack girişimi!!!");
    }
    }
    if (!is_numeric($value)) {
    $value = "'" . mysql_real_escape_string($value) . "'";
    $value = "*" . mysql_real_escape_string($value) . "*";
    }
    return $value;
    }
  • 05-12-2006, 12:01:36
    #18
    Üyeliği durduruldu
    Benim kodumda açık olmaz. Ben dedim ne olacak şimdi