• 29-11-2006, 14:35:30
    #1
    bir script yaptımda kendi çapımda sql injeksiyon ile kullanıcı adı şifrelerimi görebiliyorlar. bunun önüne nasıl geçerim? ne yapmam lazım?
  • 29-11-2006, 14:39:37
    #2
    Üyeliği durduruldu
    araştirman gereken fonksiyonlar

    addslashes
    htmlspecialschars
    strip_tags
    trim


    başarılar
  • 29-11-2006, 14:40:04
    #3
    Kurumsal PLUS
    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..
  • 29-11-2006, 15:08:53
    #4
    evet Union SELECT ile yapılıyor. internet exp. yazarak sayfada çıkması sağlanıyor. kodu koyup deneyecem saol bartuc. sonucu söylerim.
  • 29-11-2006, 21:53:44
    #5
    Üyeliği durduruldu
    Yukarıdaki fonksiyonu sen mi yazdın?

    Ne yapılmaya çalışılmış anlamadım çünkü, güvenlik için tüm fonksiyonları kullanayım fln mı dedin
  • 29-11-2006, 22:20:34
    #6
    öyle çok fonksiyon yok yukarıda. onaysız güncellenen sayfalarda kullandığım küçük bir fonksiyon. html kodlarını ve sql için zararlı olacak verileri filitreler. bu işlem için güzel sınıfları phpclasses.org adresinden bulabilirsiniz.
  • 30-11-2006, 14:24:58
    #7
    Üyeliği durduruldu
    yukarıdaki fonksiyon hatalı, gereksiz yere \ işaretini kaldırabilir veya fazladan \ işareti koyabilir.

    ayrıca HTML için escape ile DB için escape ayrıdır. ikisini bir arada kullanamazsınız. kullanırsınız da yanlış yani.

    DB için;
    mysql_real_escape_string
    HTML için;
    htmlspecialchars
    yeterlidir.
  • 30-11-2006, 15:29:08
    #8
    html için htmlspecialchars() sql injection için de intval() veya strval() fonksiyonları yeterlidir . Buna type casting denir , en basit yoldur .
  • 30-11-2006, 16:00:11
    #9
    muratmoon adlı üyeden alıntı: mesajı görüntüle
    yukarıdaki fonksiyon hatalı, gereksiz yere \ işaretini kaldırabilir veya fazladan \ işareti koyabilir.

    ayrıca HTML için escape ile DB için escape ayrıdır. ikisini bir arada kullanamazsınız. kullanırsınız da yanlış yani.

    DB için;
    mysql_real_escape_string
    HTML için;
    htmlspecialchars
    yeterlidir.
    muratmoon bu fonksiyonda zaten söyledğiniz gibi htmlspecialchars ve mysql_real_escape_string kullanılıyor. ve diyorumki eğer kendiliğinden slash eklenmemişse sen ekle. yanlış dediğin yer mysql_real_escape_string ile addslashes bir arada kullanmam mı? yoksa mysql_real_escape_string
    ile htmlscpecialchars'ın bir arada kullanılmasımı. yoksa hepsine
    mi dediniz teşekkürler