• 09-03-2021, 22:05:09
    #1
    Öncelikle Bu Alanda Profesyonel olma yolunda ilerlemekteyim %100 Güvenli diyebileceğimiz bir kod yoktur Forumda Malesef Yıl 2021 Olmasına Rağmen Projelerinde MYSQL kullanan Arkadaşlar Mevcut hem onların bilgilenmesi Açısından hemde kendini bu alanda geliştirmek isteyen arkadaşların ilerlemesi adına böyle bir konu açmaya karar verdim


    1-Veritabanı Function Seçimi



    Php 5.6 Ya kadar En Çok Kullanılan Function Olan mysqli php 7 nin çıkması ile yerini pdo ya bırakmıştır PDO mysql ye göre hem daha güvenli hemde daha performanslıdır
    Bu Nedenle anlatımıma pdo ile devam edeceğim
    Örnek Bir MYSQL Bağlantısı
    $baglanti = mysql_connect("localhost","root","123456") or die ();
    mysql_select_db("test", $baglanti) or die ( mysql_error() );
    Örnek Bir PDO Bağlantısı
    try {
         $db = new PDO("mysql:host=localhost;dbname=test", "root", "123456");
    } catch ( PDOException $e ){
         print $e->getMessage();//Hata Olursa Çıktı Olarak Ekrana Yazdırır
    }
    PDO İle Güvenli Veri Listeleme





    PDO ile Güvenli Veri Ekleme





    PDO ile Güvenli Veri Güncelleme



    PDO ile Güvenli Veri Silme



    2- Kullanıcıdan Gelen Verileri Filtreleme
    Gelen İsteklerdeki SQL Kodlarını Silerek Ve Filtreleme Yaparak Güvenlik Anlamında biraz daha geliştirme sağlayabilirsiniz Aşağıda Yazdığım ufak functiona bakalım İçerisine Girdiğimiz Veri Bu Şekilde



    Kullandığımız Kodda sql functionlarını filtrelediğimiz ve html kodlarınıda izin vermediğimiz için Çıktı Bu Şekilde Olacaktır





    3-Yapılan Hatalar
    Bir çok Arkadaşımızın Yaptığı en büyük hata Kullanıcıdan gelen veriyi doğrudan sql koduna dahil etmek alttaki örnekteki gibi bu şekilde işlem sağlayınca Dışarıdan müdahaleye bir kapı açmış oluyoruz


    Google Chrome bu gibi açıkları Engellemek için filtreleme yapsada url de her tarayıcıda bulunmamakta bu filtreleme ' bunun %27 ye dönüştüğünü deneyerek te görebilirsiniz




    Bu gibi kodlarda Dışarıdan Müdahale Edilerek Veritabanınızı silebilir günceleyebilir listeleyebilirler


    4-Tavsiyeler
    Ne Kadar Bu Yöntemler İşe Yarada Olsa Bu işte Profesyonel olmak istiyor bu yolda ilerlemek istiyorsanız MVC Öğrenmeniz Şarttır Codeigniter ,Laravel, ALTO Bunlara Örnektir Ayrıca Codeigniter gibi MVC lerin Kendine özel Veritabanı functionları vardır bu functionları kullanarak hem daha düzenli kod yapısına hemde daha güvenli bir kod yapısına sahip olabilirsiniz


    Kaynak Kodu
    indir

    http://trxyazilim.com/r10/guvenlisql1.zip
  • 09-03-2021, 22:19:53
    #2
    teşekkürler çok yararlı bi kaynak olmuş elinize sağlık
  • 09-03-2021, 22:28:24
    #3
    Elinize sağlık ancak bir şeyi düzeltmek isterim
    mysql ve mysqli çok farklı şeylerdir.
    mysql kesinlikle günümüzde kullanılmamalı ancak mysqli için bu geçerli değil.

    Örnek Bir MYSQLİ Bağlantısı altında verdiğiniz kod mysqle ait mysqli ye değil

    PDO ve MYSQLi arasında tek büyük fark pdonun mysql dışında veritabanlarıylada çalışabilmesidir


  • 09-03-2021, 22:36:03
    #4
    Megend adlı üyeden alıntı: mesajı görüntüle
    Elinize sağlık ancak bir şeyi düzeltmek isterim
    mysql ve mysqli çok farklı şeylerdir.
    mysql kesinlikle günümüzde kullanılmamalı ancak mysqli için bu geçerli değil.

    Örnek Bir MYSQLİ Bağlantısı altında verdiğiniz kod mysqle ait mysqli ye değil

    PDO ve MYSQLi arasında tek büyük fark pdonun mysql dışında veritabanlarıylada çalışabilmesidir



    Uzun Süredir Bu kavramlarla uğraşmayın ca Herşey birbirine giriyor Hocam 2 aydır bakmıyorum sanırım Hevesim kalmadı web programlamaya 😄 uyarınız için teşekkürler
  • 09-03-2021, 22:51:07
    #5
    +1
    bknz : PSR-4 (https://www.php-fig.org/psr/psr-4/)