sesusera adlı üyeden alıntı:
mesajı görüntüle
Pdo Hacklenirmi
30
●1.671
- 29-09-2017, 16:34:23BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
Merhabalar maalesef geçilir demek ile olmuyor örneklendirip aksini ispatlamanız gerekiyor ilgili fonksiyonu kullanıp geçip alıntılar mısınız rica etsem merak ediyorum nasıl geçeceğinizi bende hatam var ise öğrenmiş olurum
- 29-09-2017, 16:40:31pm den skype attım gelın skypeye nasıl geçtiğimi göstereyım size...sesusera adlı üyeden alıntı: mesajı görüntüle
- 29-09-2017, 16:43:58Yok hayır buradan yazın herkes öğrensinBoraBozdogan adlı üyeden alıntı: mesajı görüntüle
- 29-09-2017, 16:48:45al bakalım güzel kardeşim query ile bi sorgu yaptım.sesusera adlı üyeden alıntı: mesajı görüntüle
sec.php
<?php require_once("db.php"); function clean($data = array()) { if( is_array($data) ) { $data = array_map('clean' , $data); } else { $data = htmlspecialchars( $data ); $data = urldecode( $data ); // sunucuda magic quotes gpc aktif ise slash eklemez değilse ekler. $data = get_magic_quotes_gpc() ? $data : addslashes( $data ); } return $data; } $id = clean($_GET["id"]); $la = $db->query("SELECT * FROM duyurular where id=$id"); //$la->execute(array($id)); $get = $la->fetchAll(); foreach($get as $v) { //echo $v['id']; echo $v['baslik']; }pdo bağlantısını sen halledersin sanırım sql tablom da ;
id ,baslik,icerik şeklinde 3 kolonlu.
sec.php?id=1+union+select+1,version(),3 dal bakalım şu şekilde komple alırsın db yi...hadi bunu engelledın.
sec.php?id=1+and+1=0 da aldığın sonuca bak
sec.php?id=1+and+1=1 de aldığın sonuca bak. - 29-09-2017, 16:52:08BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
Merhabalar id = 1 veya name = test diye bir kullanım doğru değildir bunu bildiğiniz varsayıyorum '' içerisinde belirtirseniz hiç bir açık oluşturmaz işinize geldiğiniz gibi yorumlamışsınız verdiğim örnek ' ' içerisinde dikkat ettiyseniz , sanırım etmemişsiniz
Sizin yapmış olduğunuz tam olarak şu dışarıdan sql sorgusu yazılabilir halde alıyorsunuz bu tamamen yanlış ve amatörce bir kullanış verdiğim örnekler halinde kullanılır ise hiç bir şekilde aşılamaz. - 29-09-2017, 16:58:00dikkat etmemekle ilgisi alakası yok ,eğer '$id' şekliden kullanacak olsam senın fonksiyonuna ne gerek var ki? sql açıkları için kullanmama gerek bile yok.sesusera adlı üyeden alıntı: mesajı görüntüle
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:58:00 -->-> Daha önceki mesaj 16:56:47 --
programlama eğitimini temel olarak alan kişiler integer verilerinde tırnak kullanmayacağını bilir.kullanılabilir de..sesusera adlı üyeden alıntı: mesajı görüntüle
$x = 0;
şeklinde kullanılır çoğunlukla integer veriler.(son düzenlemenize istinaden bu) - 29-09-2017, 17:11:03İnteger verilerde tırnak kullanmayacağını biliyorsunuz ancak değişken türü atamayı deneyebilirsiniz.BoraBozdogan adlı üyeden alıntı: mesajı görüntüle

$id = abs(intval( $_GET['id'] ));
$id = abs((int) $_GET['id']);
// Verdiğim fonksiyonu burada kullanmanıza bile gerek kalmıyor.
Vermiş olduğum örnekten gitmediğiniz için hiç bir şekilde size katılmıyor ve hala benim kullandığım şekilde aşılamayacağını savunuyorum aksini ispatlarsanız sevinirim benim örneklerimden
Ek olarak php'de bu şekilde dışarıdan gelen bir herhangi bir değer açık oluşturur sql sorgusunda yazdırılmaz. eğer kullanılacak ise de değişken tipi integer olarak belirtilmelidir aksi takdirde oradan join atıp başka tabloyada bağlanılabilir
Benim verdiğim örnekte tırnak içerisinde kullanmama rağmen direk sql sorgusu yazdırılabilir halde alıp alın açık var diyorsunuz komik bir yaklaşım.
Siz şöyle yapın isterseniz daha doğru bir örnek olur
$_GET['sql'] = 'SELECT * FROM users';
mysql_query(clean($_GET['sql']));
Lütfen hala iddialaşma gayretleri içerisinde iseniz vermiş olduğum örnek üzerinden gidin.
- 29-09-2017, 17:18:33Olayda büyük bir yanlış anlaşılma olmuş sanırım yanlış anlamışım ben sql injection problemini kökten çözer şeklinde anladım.Yanlışım varsa affola..sesusera adlı üyeden alıntı: mesajı görüntüle
