[linux-programlama] Re: PHP SQL Injection Kontrol

---------

From: Sancar Saran (saran@sim.com.tr)
Date: Sun 22 Jun 2003 - 16:33:07 EEST

  • Next message: Burak DAYIOGLU: "[linux-programlama] Re: PHP SQL Injection Kontrol"

    Selamlar,

    Burak HOCAM (bizimde alistirdin ya bu hocam mevzuuna) herseydon once
    sagol...

    Burak DAYIOGLU wrote:
    > On Sun, 2003-06-22 at 15:25, Sancar Saran wrote:
    >
    >>Kurdugum yapi onermis oldugunuz yolu kullanicak sekilde tasarlanmadi.
    >>Sanirim bir sekilde preg_replace ve veya en kotusu eregi yaptirmam
    >>gerekecek.
    >
    >
    > Sancar Hocam,
    > Trafigin basini kacirdim, yanlis anlamis isem bana ozel mesajla sorunuzu
    > tekrar gonderir misiniz?
    >
    >
    >>Aradaigim yaklasik olarak
    >>
    >>$sqlRequest = "SELECT * from table
    >> WHERE a = '{array[a]}'
    >> AND b = '{array[b]}'";
    >>
    >>$status = safe_sql($sqlRequest);
    >>if($status === safe)
    >>{
    >> do_sql($sqlRequest);
    >>}
    >>Bu yonde herhangibir oneriniz varmi ?
    >
    >
    > Anladigim kadari ile SQL enjeksiyonu saldirilari verileri alma ve
    > denetleme islemlerini tamamladiktan sonra akliniza geldi; eger boyle ise
    > kotu...

    Valla kotu durumda olan birsey yok. Yazdigim essek yukuyle kod var,
    binayn aleyh hepsini tek tek gozden gecirecegim, ancak hicbiri reel
    anlamda bir yerde calismiyor. Sadece artik vaktin boyle bir sey icin
    eklenti yapma zamanina geldigini hissettigim icin ufaktan ufaktan
    arastirmaya baslayayim demistim.

    >
    > Yukarida onerdiginiz gibi bir denetleme isleminin safe_SQL() ile
    > orneklediginiz bicimde yapilmasi pek de uygun degil. Boyle bir
    > fonksiyonu atlatmanin birden fazla farkli yontemi var. SQL'in aslinda
    > nasil olmasinin uygun olmadigini bilmedigi surece safe_SQL()
    > fonksiyonuna gecerli sql'ler verdiginiz surece kabul edecektir.
    >
    > Dusundugunuz gibi sizin beklentinizi anlayacak ve farkli ise SQL gecerli
    > olsa bile calistirmayacak bir mekanizma ne yazik ki yok, olmasi da bu
    > gunlerde yalnizca akademik arastirma konusu (ilgilenenler ile bu konuda
    > elimdeki guncel makaleleri paylasabilirim).
    >
    > Bence yazilimi bastan elden gecirerek kullanicidan veri aldiginiz her
    > noktada denetim yapar hale getirmelisiniz. Denetim yaparken iki konuya
    > dikkat etmek lazim:
    >
    > a. Verileri (i) buyuklukleri, (ii) turleri, (iii) icerikleri ve (iv)
    > mantiksal uygunluklari acisindan denetlemelisiniz. Her dort bicim
    > icin de farkli saldirilar mumkun.

    Aslinda bir error check mekanizmasi (sql disinda) zaten yapmistim. Simdi
    biraz netlesti gibi ozaman

    (i) strlen ? yetermi ? yok birde greater than less than. Tamam bunlarim
    var. Hatta is_sql diye de bisi yaptim. gidip o sql cumleciginin
    dondurdugu seyin icinde olup olamdiginada bakiyor.

    (ii) is_int, is_str, is_array ? is_double ?

    (iii) if(eregi(insert,delete,where,and,or,*,/,-,+,",')) gibi bisimi ?

    (iv) iste bunu anlamadim, mantiksal derken ? zaten adami form ile belli
    noktada tikamisiz. Gerci adam baska turlude gonderebilir. ? ozaman ?

    > b. Ozellikle icerik denetimi yaparken ve bilhassa mantiksal denetimin
    > yapilmasinin mumkun olmadigi free-form alanlarda, uygunsuz sembolleri
    > bulup ayiklamak yoluyla degil, "yalnizca bu semboller uygundur"
    > biciminde tanim yapmak yoluyla ayiklamalisiniz. Bugun uygunsuz
    > oldugunu dusunmediginiz bir sembol yarin basinizi cok agritabilir.
    >
    > Pro-G olarak bu konuda duzenledigimiz bir kursumuz var; "Web Uygulama
    > Guvenligi - PGE-411". Tum orneklerin PHP ile verildigi, ancak salt
    > PHP'ye ozel olmayan, bir guvenli web uygulamalari gelistirme kursudur.
    >
    > Detayli bilgilerine http://www.pro-g.com.tr/egitim/pge411.php adresinden
    > ulasabilirsiniz.
    >
    > selamlar, iyi calismalar.

    Aslinda bakindigim, daha once yapilmis bir kac ornekti, en azindan hangi
    sql cumlelerini aratalim, (ve veya hepsini aratip cikartalim) derdindeydim.

    Sagolasin :)


  • Next message: Burak DAYIOGLU: "[linux-programlama] Re: PHP SQL Injection Kontrol"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.