PDO prepare ile: $birHazirSorgu = $birPDOObjesi->prepare ; $birHazirSorgu->execute ; Şeklinde güvenliği hazır olarak oluşturulmuş oldukça hızlı bir eklenti yerine niye kendin yazmaya çalışıyorsun? Ayrıca PHPnin klasik MySQL bağlantıları artık daha fazla geliştirilmeyecek. Yeni olarak MySQLi ve PDO devam edecek. Sadece bi imza..

Sonunda fonksiyon için nerisi olan birisi... Çok teşekkür ederim @Erdem kardeşim :) If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.

prepare methodlarında açıkların olabileceğini okumuştum. Sende bir link vermişsin ancak sürekli yenilenen bir alt yapı var sonuçta. Her ne olursa olsun id leri muhakkak integer olup olmadığını kontrol etmeni neririm. Ayrıca mysql_real_escape_String bir çok sunucuda hata veriyor tarihi geçti. Birde süzgece alırken tüm karakterleri ufak yap ve danger_words değişkenlerinide ufak yap. iNsErt Yazan kişi sızmasın. Ayrıca her sayfada bir referer kontrolü yaparak, yada random bir değişken basarak bir sonraki sayfanın çalışmasını sağlarsan güvenliğin biraz daha artmış olacaktır. Php for SEO nun ardından Php for Gcode

http://php.net/manual/tr/mysqli. quickstart. prepared-statements. php gozatmani tavsiye ederim. Sadece paranoyaklar hayatta kalır...

prepare metodu 100% güvenlik sağlamıyor olması lazım. mysql ldü zaten, o yüzden burdaki bazı metotlardan hatalar alabilirsin hocam. Hello, i am nothing. I come from Neverland.

PDO varken kendi fonksiyonlarını yazman gereksiz sylendiği gibi. Zaten fonksiyonlar bu haliyle güvensiz. str_replace fonksiyonu büyük-küçük harf duyarlılığına sahip, dolayısıyla saldırgan "INSERT" yerine "inserT" yazdığında fonksiyon gerekli filtrelemeyi yapmayacak ve sql sorgusu çalışacaktır. rneğini şurada "output" kısmında grebilirsin: https://eval.in/616580 Bunu aşmak için tüm büyük-küçük harf olasılıklarını dahil eden bir yntem geliştirmen lazım, bu şekilde sağlıksız. Ayrıca o regex'ler de sanırım XSS'leri engellemek için yazılmış fakat bunu da HTML'yi output ederken konteksine uygun şekilde filtrelemen lazım. mysql_real_escape_string fonksiyonu da tedavülden kalktı: http://php.net/manual/tr/function. mysql-real-escape-string. php Arkadaşların bahsettiği PDO prepare metodunun kullanımına verdiğin rnek yanlış. $id = $_GET ;$query = $pdo->query ->fetch ;if Burada sorgu sql injection'a açık. Değişkenin geleceği yeri PDO'ya bildirdiğinde gerekli korumayı sağlar. Şu şekilde kullanılması gerekiyor: $pdo = ..;$sql = "SELECT FROM uyeler WHERE uye_id = :id";$stmt = $pdo->prepare ;$stmt->bindParam ;$stmt->execute ;$results = $stmt->fetchAll ; ozdemyr tarafından 03/Ağu/16 11:55 tarihinde düzenlenmiştir

Yani bunun yerine; $id = $_GET ; $query = mysql_query ; if ( mysql_affected_rows ) PDO ile Bunu kullan diyorsunuz $id = $_GET ; $query = $pdo->query ->fetch ; if Ya da MYSQLi olarak şyle yap diyorsunuz $id = $_GET ; $query = mysqli_query ; if ( mysqli_affected_rows ) Bu şekilde id olarak içeri aldığımız değişkene sql injection yapamazlar yani? Çünkü stackoverflow da yapılabileceği ile ilgili bir tartışma sz konusu buyrunuz: http://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection Sizce? Ayrıca İşin komik tarafı ben fonksiyon sormuşum... bu fonksiyon nasıl güzelleştirilebilir var mı neriniz diye. PDO kullan deyip basit cevaplar verilip geçiştirilmişim. Fonksiyon namına cevap yok. Belki 2000 yılında yaptığım bir sistemde kullanacağım hiç düşünen olmamış. Ah gençlik ah. :) PLaXToR tarafından 02/Ağu/16 09:55 tarihinde düzenlenmiştir If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.

Selamlar, 2 ayrı fonksiyon yazdım birini get ettiğim id lerde birini get ettiğim stringlerde kullanıyorum. Sizce sql injection için yeterli mi yada yanlışlık ve eksiklik var mı neride bulunabilir misiniz? Bunu stringler için kullanıyorum function fullstringfilter Bunu ID ler için kullanıyorum: function fullidfilter If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.

ID'ler için bunu da kullanabilirsin hocam function sayi lepusmorris tarafından 04/Ağu/16 19:45 tarihinde düzenlenmiştir..