wmaraci reklam

Php güvenlik Hacker

4 Mesajlar 608 Okunma
pst.net
wmaraci reklam

petrona petrona WM Aracı Kullanıcı
  • Üyelik 13.08.2017
  • Yaş/Cinsiyet 36 / 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.
wmaraci
reklam

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)
$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]);
ResatTurksoy

kişi bu mesajı beğendi.

petrona petrona WM Aracı Kullanıcı
  • Üyelik 13.08.2017
  • Yaş/Cinsiyet 36 / 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.

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)

Pardon, hızlıca yazdığım için PDO::FETCH_ASSOC parametresini silmeyi unutmuşum. Şöyle olacak:

$sorgu = $db->prepare("SELECT * FROM uyeler WHERE telefon = ? and sifre = ? ");

Execute'u da çalıştırdıktan sonra gelen kayıt sayısını da "$veri->rowCount()" şeklinde alabilmen lazım.

 

 

wmaraci
Mersin evden eve nakliyat
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al