-
Üyelik
13.08.2017
-
Yaş/Cinsiyet
37 / E
-
Meslek
bilişim
-
Konum
Ankara
-
Ad Soyad
E** T**
-
Mesajlar
170
-
Beğeniler
55 / 15
-
Ticaret
0, (%0)
Bu şekilde üye login girişim var. Kullanıcı telefon numarası ve şifresi ile giriş yapabiliyor.Sizce bu sistem hacklenabilir mi veya sql injection yapılabilirmi?
<?php
$telefon = $_POST['telefon'];
$sifre = $_POST['sifre'];
$db = new PDO("mysql:host=ttttttt;dbname=tttttt","ttttttt","tttttt");
$veri = $db->query("SELECT * FROM uyeWHERE telefon = '$telefon' and sifre = '$sifre' ",PDO::FETCH_ASSOC);
$gen = $veri -> rowcount();
if ($gen > 0) {
session_start();
$_SESSION['login']= true;
$_SESSION['telefon']= $telefon;
$_SESSION['sifre']= $sifre;
setcookie("te",$telefon,time()+3600,'/');
header("Location: uyesayfa.php?id=$telefon");
}
else {
echo "<center>Kullanıcı adı veya şifre yanlış</center>";
}
?>
Üye sayfası güvenlik kodlarım üst kısımda aşağıdadır
uyesayfa.php
<?php
$id = $_GET['id'];
ob_start();
session_start();
if (isset($_SESSION['login'])) {
} else {
header("location: index.php");
}
?>
<html>
vs.....
</html>
Mesaj 1 defa düzenlendi. Son düzenleyen: petrona (05.08.2022 20:16)
Android uygulamalarınız yazılır,Reskin yapılır,Adwords Yönetimi,Seo.E-ticaret Profesyonel hizmet.
-
Üyelik
13.08.2017
-
Yaş/Cinsiyet
37 / E
-
Meslek
bilişim
-
Konum
Ankara
-
Ad Soyad
E** T**
-
Mesajlar
170
-
Beğeniler
55 / 15
-
Ticaret
0, (%0)
Procondio adlı üyeden alıntı
$veri = $db->query("SELECT * FROM uyeWHERE telefon = '$telefon' and sifre = '$sifre' ",PDO::FETCH_ASSOC);
Şu kısımda direkt olarak bir SQL injection zaafiyeti var. String'i concat ediyorsun ve SQL kodu dahil her şey gönderildiği gibi bu stringin içine dahil olacak. Bunun yerine prepared statement kullanman daha iyi olur. Örneğin şu şekilde yazabilirsin:
$sorgu = $db->prepare("SELECT * FROM uyeWHERE telefon = ? and sifre = ? ",PDO::FETCH_ASSOC);
$veri = $sorgu->execute([$telefon, $sifre]);
Dediğinizi yazdım sayfa çalışmadı http 500 hatası verdi.Şu olmadı hata verdi
<?php
$telefon = $_POST['telefon'];
$sifre = $_POST['sifre'];
$db = new PDO("mysql:host=tttt;dbname=tttttt","ttttt","tttttttt");
$sorgu = $db->prepare("SELECT * FROM uyeler WHERE telefon = ? and sifre = ? ",PDO::FETCH_ASSOC);
$veri = $sorgu->execute([$telefon, $sifre]);
$gen = $veri -> rowcount();
if ($gen > 0) {
session_start();
$_SESSION['tak']= true;
$_SESSION['telefon']= $telefon;
$_SESSION['sifre']= $sifre;
setcookie("te",$telefon,time()+3600,'/');
header("Location: uyesayfa.php?id=$telefon");
}
else {
echo "<center>Kullanıcı adı veya şifre yanlış</center>";
}
?>
Android uygulamalarınız yazılır,Reskin yapılır,Adwords Yönetimi,Seo.E-ticaret Profesyonel hizmet.