• 13-09-2009, 13:14:16
    #10
    Üyeliği durduruldu
    CmDWeB

    index.php?sql=union+all+select+users,pass+from+use rs+where+id=1 çalıştırsalar yersin derken sql diye php dosyamda tanım olması lazım değilmi? + yukarıdaki önlemleri kullanınca da mı engel olamayız yada ne yapmak lazım.
    kısaca o satırın beni aştı
  • 13-09-2009, 13:19:38
    #11
    yalnız addslashes ya da mysql_escape_string php, mysql sürümüne göre farklı çalışır. php4 ve 5 için uygulamalarda ufak farklılıklar oluyor. bunun üzerine hazır classlar var. php versionunu kontrol edip ona göre uygun fonksiyonu seçiyor. eğer uygun sürümü kullanmaz db'ye de \' şeklinde işliyor ( \ ile birlikte ). bu nedenle biraz araştırmak lazım
  • 13-09-2009, 13:33:14
    #12
    Üyeliği durduruldu
    vezir adlı üyeden alıntı: mesajı görüntüle
    CmDWeB
    index.php?sql=union+all+select+users,pass+from+use rs+where+id=1 çalıştırsalar yersin derken sql diye php dosyamda tanım olması lazım değilmi? + yukarıdaki önlemleri kullanınca da mı engel olamayız yada ne yapmak lazım.
    kısaca o satırın beni aştı
    yani şöyle bir cümlen var

    select * from x where id='".$_GET['id']."' get ile gelen veride union+all+select+users,pass+from+use rs+where+id=1 böyle olursa
    (+ lar boşluk olarak kabul edilir) sorgun direk

    select * from x where id='union all select users,pass from users where id=1'

    oluyor burdada adam istedigi komutu çalıştırabiliyor yani
    addslahes htmlspecialchars strip tag yada digerleri hiç biri etkinlik gösteremedi sonuç olarak sql injectiona uğradın önceki mesajımda dedigim gibi kendini geliştirdikçe bazı şeyleri göreceksin özellikle ilk başladıgın sıralar benim gibi bir aptallık yapıp hack e bulaşmışsan ileride çok faydası oluyor neyse fazla konuştum işin özü mesela sef linkler mi yapıyorsun şöyle yap id ile çek
    id de de şöyle bir kontrol yap

    if(!is_numeric($_GET['id'])) exit('sie');

    yada id siz sef link mi yapıyorsun şöyle yap
    $sef = urlencode($_GET['sef']);
    %20%56%44 tarzı karakterlere çeviriyor veritabanından eklerkende urlencode olarak eklersin eşleşir ve çalışır yani yöntem çok fakat belli başlı bir yöntem yok


    sql adlı üyeden alıntı: mesajı görüntüle
    yalnız addslashes ya da mysql_escape_string php, mysql sürümüne göre farklı çalışır. php4 ve 5 için uygulamalarda ufak farklılıklar oluyor. bunun üzerine hazır classlar var. php versionunu kontrol edip ona göre uygun fonksiyonu seçiyor. eğer uygun sürümü kullanmaz db'ye de \' şeklinde işliyor ( \ ile birlikte ). bu nedenle biraz araştırmak lazım

    bu konuda çok önemli bir konu eğer php sürümünüzü güncel tutarsanız bu tür ufak şeylerdende korunmuş olursunuz sanırsam php 6 özelliklerinden biride buydu bu tür hataları kaldırıyorlar.
  • 13-09-2009, 13:43:58
    #13
    Üyeliği durduruldu
    anlamaya çalışıyorum...

    peki seolu yani /balbala.html gibi sayfalar kullansak htaaccess ile, yani get ve postları açık etmesek kötü niyetli birisi yinede bulabilirmi?
    yada başka kapatmamız gereken delik olacakmı?





    bu arada teşekkürler +rep
  • 13-09-2009, 13:53:11
    #14
    Üyeliği durduruldu
    get ile postları açık etmesek derken ?
  • 13-09-2009, 13:57:55
    #15
    /balbala.html yi zaten get olarak kullanacaksın haccess ile . yan /balbala.html yi show.php?getir=balbala ya çevireceksin. doğal olarak sef link üzerinden de sql injection yapılabilir .
  • 13-09-2009, 14:01:07
    #16
    Üyeliği durduruldu
    işte anlattıklarımda burda devreye giriyor urlencode kullancaksın veritabanından çekerken eger +girerse sql + olarak görür boşluk girerse %20 olarak görür ve sql den korunursun
  • 13-09-2009, 14:03:40
    #17
    urlencode mysql e bayağ yüklenecektir yalnız index tanımlandığında. başka yol yok mu acaba ? ben türkçe karakterleri silerek, boşluk yerinede de tire kullanarak, url encode kullanmadan direkt olarak kullanıyodum. şimdiye kadar bir sorun yaşamadım ama uğraşan olmamış demek ki
  • 13-09-2009, 14:10:37
    #18
    Üyeliği durduruldu
    sql adlı üyeden alıntı: mesajı görüntüle
    /balbala.html yi zaten get olarak kullanacaksın haccess ile . yan /balbala.html yi show.php?getir=balbala ya çevireceksin. doğal olarak sef link üzerinden de sql injection yapılabilir .
    doğru ya.