• 29-10-2012, 00:41:26
    #10
    Üyeliği durduruldu
    güzel anlatım. kısaca sorguya çomak sokmak diyebiliriz
  • 29-10-2012, 02:13:55
    #11
    Eyvallah güzel anlatım olmuş.
  • 29-10-2012, 16:35:38
    #12
    Tesekkürler iyi anlatim olmus
  • 30-10-2012, 17:49:18
    #13
    SanCreaL adlı üyeden alıntı: mesajı görüntüle
    güzel anlatım. kısaca sorguya çomak sokmak diyebiliriz
    Aynen öyle.
  • 30-10-2012, 23:18:21
    #14
    Emeğine saygı duyuyorum arkadaşım fakat mysql_query, mysql_real_escape_string vs. yani mysql fonksiyonları artık deprecated(kullanılması önerilmeyen, vadesi dolmuş) fonksiyonlardır. Ne acıdır ki bir çok büyük kuruluşlun yazılımcıları bile bundan haberdar değildir. Halbuki php.net'e biraz göz gezdirirseniz bu bilgilere kolaylıkla ulaşabilirsiniz. Bu fonksiyonların yerine artık procedural veya object oriented olarak mysqli fonksiyonları veya object oriented olarak pdo_mysql kullanılmalıdır. Eğer sql injection ı hayatınızdan tamamen çıkarmak istiyorsanız birde prepared statements ve query binding nedir ne değildir araştırmalısınız. (http://php.net/manual/en/pdo.prepared-statements.php) Profesyonelliğe ilk adımınız bunlarla olabilir mesela.
    Saygılar...
  • 31-10-2012, 17:57:09
    #15
    satriani adlı üyeden alıntı: mesajı görüntüle
    Emeğine saygı duyuyorum arkadaşım fakat mysql_query, mysql_real_escape_string vs. yani mysql fonksiyonları artık deprecated(kullanılması önerilmeyen, vadesi dolmuş) fonksiyonlardır. Ne acıdır ki bir çok büyük kuruluşlun yazılımcıları bile bundan haberdar değildir. Halbuki php.net'e biraz göz gezdirirseniz bu bilgilere kolaylıkla ulaşabilirsiniz. Bu fonksiyonların yerine artık procedural veya object oriented olarak mysqli fonksiyonları veya object oriented olarak pdo_mysql kullanılmalıdır. Eğer sql injection ı hayatınızdan tamamen çıkarmak istiyorsanız birde prepared statements ve query binding nedir ne değildir araştırmalısınız. (http://php.net/manual/en/pdo.prepared-statements.php) Profesyonelliğe ilk adımınız bunlarla olabilir mesela.
    Saygılar...
    Öncelikle kullanılan yöntemler konusunda eleştirileriniz direk şahsıma geliyorsa eleştiri yapmadan önce neler yaptığımı, kim olduğumu yüzeysel olarak incelemiş olduğunuzu umut ediyorum. En basitinden 2009 yılında yayınladığım CodeIgniter Framework video eğitim setinde Active Record ile mysql işlemlerinin nasıl yapılacağını anlattığımı görebilirsiniz.

    Eğer şahsıma bir itham söz konusu değil ve genele yapılan bir eleştiriyse önceki paragrafı dikkate almanız gerekmiyor.

    Bir konuyu anlatmadan önce her zaman php dilini öğrenmeye başladığım günleri hatırlarım. O günlerde yaşadığım sıkıntıları başkalarının yaşamaması için de anlatacağım konuyu mümkün olduğunca basite indirmeye ve her türlü detayı açıklamaya çalışırım. Bu derste hitap ettiğim kitlenin başlangıç ve orta seviyeye geçmeye çalışan kişiler olduğunu çok rahatlıkla gözlemleyebilirsiniz. PDO veya herhangi bir ORM kullanabilme seviyesinde olan birinin zaten "SQL Injection" konusunda bilgisiz olması pek mümkün değil.

    Dolayısıyla hitap edilen kitlenin bu konuyu rahatlıkla anlayabilmesi için klasik ve yaygın kullanılan yöntemlerden ilerlemek gerekiyordu. PDO kullanan biri zaten mysql_connect komutunun ne işe yaradığını bilir ve dersi izlediğinde konuyu anlar. Ama elindeki kitapta hala "mysql_connect" komutları anlatılan, henüz object oriented ile tanışmamış birine zaten bilmediği "SQL Injection" konusunu kullan(a)madığı yöntemlerle anlatmaya çalışmak pek mantıklı bir hareket olmaz.

    Sonuç olarak ders içeriğinde kullandığımız örnek kodlar bir araçtır. Amaç yazılımcılara "Kullanıcıdan aldığınız hiç bir değere güvenmeyin. Mutlaka gerekli doğrulama ve filtreleme işlemlerinden geçirin. Bunları yapmadığınız zaman SQL sorgunuz değiştirilir ve istenmeyen sonuçlar oluşur." mesajını aktarmaktır.
  • 01-11-2012, 13:18:37
    #16
    Peki herhangi bir kullanıcı birimi olmayan sayfalarda örneğin haber.php?no=2 bağlantısı ile no değerini get ile alıp sql sorgusu ile no değerine göre veriyi çekiyoruz. GET ile almış olduğumuz bu değeri filtrelemek gerekiyor mu? Yani filtrelememek sıkıntı yaşatır mı?
  • 01-11-2012, 21:35:19
    #17
    OfisSoft adlı üyeden alıntı: mesajı görüntüle
    Öncelikle kullanılan yöntemler konusunda eleştirileriniz direk şahsıma geliyorsa eleştiri yapmadan önce neler yaptığımı, kim olduğumu yüzeysel olarak incelemiş olduğunuzu umut ediyorum. En basitinden 2009 yılında yayınladığım CodeIgniter Framework video eğitim setinde Active Record ile mysql işlemlerinin nasıl yapılacağını anlattığımı görebilirsiniz.

    Eğer şahsıma bir itham söz konusu değil ve genele yapılan bir eleştiriyse önceki paragrafı dikkate almanız gerekmiyor.

    Bir konuyu anlatmadan önce her zaman php dilini öğrenmeye başladığım günleri hatırlarım. O günlerde yaşadığım sıkıntıları başkalarının yaşamaması için de anlatacağım konuyu mümkün olduğunca basite indirmeye ve her türlü detayı açıklamaya çalışırım. Bu derste hitap ettiğim kitlenin başlangıç ve orta seviyeye geçmeye çalışan kişiler olduğunu çok rahatlıkla gözlemleyebilirsiniz. PDO veya herhangi bir ORM kullanabilme seviyesinde olan birinin zaten "SQL Injection" konusunda bilgisiz olması pek mümkün değil.

    Dolayısıyla hitap edilen kitlenin bu konuyu rahatlıkla anlayabilmesi için klasik ve yaygın kullanılan yöntemlerden ilerlemek gerekiyordu. PDO kullanan biri zaten mysql_connect komutunun ne işe yaradığını bilir ve dersi izlediğinde konuyu anlar. Ama elindeki kitapta hala "mysql_connect" komutları anlatılan, henüz object oriented ile tanışmamış birine zaten bilmediği "SQL Injection" konusunu kullan(a)madığı yöntemlerle anlatmaya çalışmak pek mantıklı bir hareket olmaz.

    Sonuç olarak ders içeriğinde kullandığımız örnek kodlar bir araçtır. Amaç yazılımcılara "Kullanıcıdan aldığınız hiç bir değere güvenmeyin. Mutlaka gerekli doğrulama ve filtreleme işlemlerinden geçirin. Bunları yapmadığınız zaman SQL sorgunuz değiştirilir ve istenmeyen sonuçlar oluşur." mesajını aktarmaktır.
    Tabikide eleştirilerim şahsınıza değildir, geneledir. Ben bazı konularda kendimi tutamayıp biraz katı olabiliyorum kusura bakmayın, yanlış anlaşılmak istemem. Fakat bazı şeyler baştan nasıl öğrenilirse o şekilde devam ediyor. Şahsi görüşüm o an için en doğrusu, en günceli ne ise onun öğrenilmesidir. Yazılıma yeni başlayanlar bilgiye aç bir şekilde internet üzerinde doğru yanlış ne bulurlarsa onu alıyorlar ve çoğu zamanda yanlış bilgilerin ışığında ilerliyorlar malesef. Videodaki anlatımınız gayet anlaşılır, vakit ayırıp bilginizi paylaşmanız çok güzel bir olay. Bu noktada saygı duyuyorum başka birşey demiyorum. Peace
  • 01-11-2012, 21:43:36
    #18
    loc adlı üyeden alıntı: mesajı görüntüle
    Peki herhangi bir kullanıcı birimi olmayan sayfalarda örneğin haber.php?no=2 bağlantısı ile no değerini get ile alıp sql sorgusu ile no değerine göre veriyi çekiyoruz. GET ile almış olduğumuz bu değeri filtrelemek gerekiyor mu? Yani filtrelememek sıkıntı yaşatır mı?
    Sql injectionla ugrasmamak ve daha iyi seo icin htaccess yontemiyle
    haber/2-haber-basligi.html
    Gibi yapabilirsiniz hem sql inj. Onler hem adres satirinda haber ismini bastirip daha iyi indexler alina bilir


    Sent from my iPhone using Tapatalk