Caesar
ich bin /root
Kullanıcı
-
Üyelik
24.08.2015
-
Yaş/Cinsiyet
39 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İstanbul Anadolu
-
Ad Soyad
O** B**
-
Mesajlar
837
-
Beğeniler
77 / 558
-
Ticaret
10, (%100)
tamam id integer değilse şöyle yapiyorsun
$id = mysql_escape_string(strip_tags($_GET['id']));
php 7 de mysql_escape_string çalışmaz. 7 ise başka bir kod veririm 5.6 ya kadar bu işini görür. Sana injection atıyorlar. İd gelen değer içine ' atıp sorguyu kapatıp gönderdiği diğer kodu php gibi çalıştırıyorlar sıkıntın bu . Çünkü gelen get değeri süzmüyorsun yukarıdaki fonksiyon süzecektir.
>/dev/null 2>&1
Caesar
ich bin /root
Kullanıcı
-
Üyelik
24.08.2015
-
Yaş/Cinsiyet
39 / E
-
Meslek
Bilgisayar Mühendisi
-
Konum
İstanbul Anadolu
-
Ad Soyad
O** B**
-
Mesajlar
837
-
Beğeniler
77 / 558
-
Ticaret
10, (%100)
Örneğin Sorgu şu olsun;
$id = $_GET['id'];
$sorgu = mysql_query("select * from tablo where id = '".$id."'");
index.php?id=1' and delete from tablo
şeklinde gelirse ne oluyor 1 kısmı id = '1 e denk geliyor 1 den sonra gelen ' sorguyu bitiriyor daha sonra and ile ikinci sorguya geçip tablo nu silme işlemi gönderiyor. Sen gelen tüm get yada post değerlerini filtrelemen lazım.
>/dev/null 2>&1
-
Üyelik
21.05.2016
-
Yaş/Cinsiyet
34 / E
-
Meslek
Backend Developer
-
Konum
Ankara
-
Ad Soyad
E** E**
-
Mesajlar
99
-
Beğeniler
6 / 27
-
Ticaret
0, (%0)
Korkmaz adlı üyeden alıntı
Caesar Hocam dediğiniz gibi yapınca movie=not_found diye uyarı geliyor. İçeriği okuyamıyor. Gelen id içeriği örneği bu: movie.php?id=tt5748998
İd içeriğinde harf olduğundan sıkıntı çıkıyor.
evet. int ve abs fonksiyonları içerisine aldığında açık kapanır. Fakat harfleri siler. Harflerin silinmesinde sorgu başarısız sonuçlanabilir. Bu aşamada ya sadece sayısay değere bağlı çağrı yapacaksın ya da get ile gelen veriyi mysqli 'nin real_escape_string fonksiyonunu kullanarak yapacaksın.
Ben mysqli kullanmıyorum mysql kullanıyorum diyorsan zaten ilk işin mysqli yapısına geçmek olacak.
https://ehantechnology.com/