ezsql frameworküne bak şuan projelerimde onu kullanıyorum sql injectionda bi ton denememize rağmen sıkıntı çıkarmadı ve projelerde daha hacklenmedi bak derim sana :)

İşin mantıksal kısımlarını kendim koşullarla oluşturdum aklıma geldiği kadarıyla ama bilmiyorum ne kadar doğru yaptım. Mesela <?php $pdo = new PDO ; $pdo->query ; şu kodda id yerine "1;DELETE FROM tablo_adı" yazılarak tüm kullanıcılar temizlenebilir demiş adamlar, ve güvenliği sağlamak için <?php $pdo = new PDO ; $stmt = $pdo->prepare ; $stmt->bindParam ; // $stmt->execute ; kodu yazılmalı demişler. Ben bunun yerine ctype_digit yapıp eğer id numara değilse hiç sorgu yaptırmıyorum. PDO yerine mysqli kullanıyorum , sorguları da stored procedure olarak kullanıyorum. Zaten linklerden gelen idlerin kontrolünü yaptırıyorum eğer farklı bi durum varsa if-else ile hata sayfasına ynlendiriyorum. Kullanıcıdan gelen verileri htmlspecialchars, addslashes gibi fonksiyonlarla düzgünce alıyorum. Yani bu şekilde kullanmak sadece daha kolay mı yoksa daha güvenli mi? bu başlık altında az teknik-taktik yapalım :)

get ve post yerinede filter_input kullan. Birde projene uygun şifreleme algoritmasını seç, bcrypt gibi, şimdi herhalde scrypt yolda.

Ccaglayan bunu yazdı ezsql frameworküne bak şuan projelerimde onu kullanıyorum sql injectionda bi ton denememize rağmen sıkıntı çıkarmadı ve projelerde daha hacklenmedi bak derim sana :) hocam ezsql de güvenlik adına ekstra bi satır kod yok. bütün güvenliğini ezsql'e emanet ettiğine emin misin extra yapılarımız varda ezsql üzerindeki bazı fonksiyonları kontrol ettiğinde mevcut mesela sql injection için içinde escape fonksiyonu var zorlamamıza rağmen veritabanına ulaştırtmıyo sql injectionda

Eğer prepared statements yerine soylediğin gibi bir yntem kullanıyorsan sql injection ataklarına açık bırakmış olursun. SQL injection sadece-- delete. ... şeklinde yazmakla olmuyor. Adam oraya binary formatta sql kodunu bir çakar aklın hayalin şaşar. OWASP'ın SQL Injection hakkındaki dkümanlarını okumanı tavsiye ederim. hoca o nasil ya? varmi bildigin ornek, denemek istiyorum 29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.

Eğer prepared statements yerine soylediğin gibi bir yntem kullanıyorsan sql injection ataklarına açık bırakmış olursun. SQL injection sadece-- delete. ... şeklinde yazmakla olmuyor. Adam oraya binary formatta sql kodunu bir çakar aklın hayalin şaşar. OWASP'ın SQL Injection hakkındaki dkümanlarını okumanı tavsiye ederim. Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

ben açmıştım byle bir konu, birkaç linkte dizmiştim incele istersen. http://www.tahribat.com/Forum-Php-Guvenlik-Ve-Hiz-168185/

Php De Güvenlik trajik bir başlık olmuş :D.::::Tesadüfen Doğdum Mecburen Yaşıyorum Zorudan lücem:::...

ezsql frameworküne bak şuan projelerimde onu kullanıyorum sql injectionda bi ton denememize rağmen sıkıntı çıkarmadı ve projelerde daha hacklenmedi bak derim sana :) hocam ezsql de güvenlik adına ekstra bi satır kod yok. bütün güvenliğini ezsql'e emanet ettiğine emin misin

Php De Güvenlik trajik bir başlık olmuş :D "-PHP gibi bir dilde güvenlik ne arar la" mı demek istedin? Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

Framework ğren, hazır fonksiyonları kullan daya geç yani? :D :)

arkadaşın dediği gibi pdo da sql parameter olarak gnderdiğinde zaten içini temizliyor. mysqli'de de temizliyor sıkıntı yok yani hocam :D.

o kadar ugrasma pdo kullan, pdo kullanirken php ye diyosunki, al bu sorgu kodu buda parametre. sikseler o parametreyi kod olarak algilamiyo ayrica, basitinden bi framework kullansana haci? butun ameleligi senin yerine o yapsin codeigniter ile baslayabilirsin mesela symfony yada zend cok karisik gelir simdi sana edit: ayrica, aldigin deger eger integer sa $_REQUEST demen yeterli olacaktir, text olsada onu int e cevirir, 1 olarak algilar. yolbulucu tarafından 22/Ağu/13 15:06 tarihinde düzenlenmiştir 29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.

$baglanti->query("call spEkle ") şeklinde kayıt işlemini yaptım. $tarih = date ; $ad = htmlspecialchars ; $soyad = htmlspecialchars ; $konu = htmlspecialchars ; $mesaj = htmlspecialchars ; $kod = $_POST ; $uid = substr(md5 , 6, 7); $ipNo = ipAl ; değişkenler de bunlar. filter_input direk filtreliyormu bir deniyeyim. DrKill bunu yazdı Eğer prepared statements yerine soylediğin gibi bir yntem kullanıyorsan sql injection ataklarına açık bırakmış olursun. SQL injection sadece-- delete. ... şeklinde yazmakla olmuyor. Adam oraya binary formatta sql kodunu bir çakar aklın hayalin şaşar. OWASP'ın SQL Injection hakkındaki dkümanlarını okumanı tavsiye ederim. Sağol bir bakayım. Yanlış hatırlamıyorsam ya php. nette ya da phptherightway.comda grmüştüm dediğin dkümanların nerisini, bakmakta fayda var. :)

Hayır hocam zaten pdo ve mysqli senin yapmak istediğin güvenlik temizliğini yapıyor üzerine senib bir şey yapmana gerek yok. Eğer düz mysql_ komutlarını kullansaydın o zaman oturur yazardın bi güvenlik class'ı ama gerek yok yani. mysql_ komutlarına sonraki sürümlerde destek vermeyeceğiz uyarısını grünce mysqli_ ye çevirdim. Basit bi dilek-şikayet formu ve admin paneli kodladım sadece, güvenlik classına gerek yok. Konuyu açıp sorma sebebim sadece merak, biraz daha detay almak :) Edit: VBDream bunu yazdı get ve post yerinede filter_input kullan. Birde projene uygun şifreleme algoritmasını seç, bcrypt gibi, şimdi herhalde scrypt yolda. Şifreleme algoritması kullanıcı şifresi için mi sadece? yoksa sessionlardaki verileri falan da şifrelemek gerekiyor mu? Ben şifreyi kaydederken md5(md5 şeklinde bişey kullandım ama adamlar password_hash fonksiyonu geliştirmişler. wasd tarafından 22/Ağu/13 16:36 tarihinde düzenlenmiştir :)

ben açmıştım byle bir konu, birkaç linkte dizmiştim incele istersen. http://www.tahribat.com/Forum-Php-Guvenlik-Ve-Hiz-168185/ Konuyu inceledim; -Performans olarak İsoT renenin dkümanlardaki yazısını zetlemiş ama güvenlik olarak net bişey dememiş. -slothere birsürü şey demiş, hatta bir konu açmış ama konusunda arlong "prepared statement kullanın geçin, bu kadar uraşmayın" demiş. Drkillde prepared statementsın binary formatta sql komutunu bile engellediğini sylemiş. Yani 2 fonksiyon yazmak zor değil ama "engelliyorsa niye yazayım?" kısmındayım ben. Birde ben mysqli kullanıyorum ama pdo daha iyi, bazı yerlerde mysqli yetersiz falan diyenler var sanırım, aradaki farkları net olarak bilen var mı? Yoksa da kim ne kullanıyor, niye kullanıyor? :)

http://stackoverflow.com/questions/196652/prepared-statement-vs-stored-procedure byle de bir konu var. Şu an prepared statement içinde çalıştırıyorum stored procedurelerimi, mysqli_real_escape_string htmlspecialchars addslashes gibi şeyleri kullanmama gerek kalmadı sanırım? :)

Framework ğren, hazır fonksiyonları kullan daya geç yani? :D Hayır hocam zaten pdo ve mysqli senin yapmak istediğin güvenlik temizliğini yapıyor üzerine senib bir şey yapmana gerek yok. Eğer düz mysql_ komutlarını kullansaydın o zaman oturur yazardın bi güvenlik class'ı ama gerek yok yani. .

Framework ğren, hazır fonksiyonları kullan daya geç yani? :D soyle bir ornek vereyim, direk su anda calistigim koddan aliyorum, herboku alip array e atiyorum sonra modelimin icinde direk insert ediyorum bu arrayi, sana ne gibi kolayliklar getirecegine sen karar verebilirsin. bu controller tarafindaki kod $owner = $this->auth->user ->row ->username; $title = $this->input->post ; $content = $this->input->post ; $opt1 = $this->input->post('opt1'); $opt2 = $this->input->post('opt2'); $params = array( 'title' => $title, 'content' => $content, 'owner' => $owner, 'option1' => $opt1, 'option2' => $opt2, 'entryId' => $id ); $result = $this->eventModel->insert ; buda model in icindeki kodum : public function insert yolbulucu tarafından 22/Ağu/13 16:36 tarihinde düzenlenmiştir 29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.