[linux-programlama] Re: PHP SQL Injection Kontrol

---------

From: Burak DAYIOGLU (burak.dayioglu@pro-g.com.tr)
Date: Sun 22 Jun 2003 - 18:45:45 EEST

  • Next message: Sancar Saran: "[linux-programlama] Re: PHP SQL Injection Kontrol"

    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...

    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.

    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.

    -- 
    Burak DAYIOGLU
    Danisman, Pro-G Bilisim Guvenligi ve Arastirma Ltd.
    Phone: +90 312 2101494         Fax: +90 312 2101493
    http://www.pro-g.com.tr           ICQ UIN: 72276975
    

  • Next message: Sancar Saran: "[linux-programlama] Re: PHP SQL Injection Kontrol"

    ---------

    Bu arsiv hypermail 2.1.6 tarafindan uretilmistir.