Şimdi Ara

PHP '=''or' açığım var nasıl düzeltebilirim (ÇÖZÜLDÜ)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
2
Cevap
0
Favori
118
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Edit : Sorunu çözdüm.

    Basit bir şekilde veritabanında ki şifreyi MD5 ile şifreledim.

    Gerisini zaten kodlar anlatıyor :

    ob_start();
    session_start();

    require("Dosyalar/vt_baglan.php");

    $kod = $_SESSION['kod'];
    $kadi = $_POST["kadi"];
    $sifre = $_POST["sifre"];
    $kod = $_SESSION['kod'];
    $kntrl=$_POST['kontrol'];

    if($kntrl==$kod){

    $md5_sifre = md5($sifre);

    $verileriCek = mysql_query("SELECT `sifre` FROM uyeler WHERE kadi='".$kadi."'");

    $write = mysql_fetch_array($verileriCek);
    $vt_sifre = $write['sifre'];

    if ($md5_sifre === $vt_sifre){

    $_SESSION["login"] = "true";
    $_SESSION["user"] = $kadi;
    $_SESSION["pass"] = $sifre;


    header("Location:Panel/");
    } else {
    echo "Kullanıcı Adı veya Şifre Yanlış.";
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi Black_Ang3l -- 16 Ağustos 2017; 11:18:23 >







  • SQL injection açığı var demektir bu. Basitçe POST'tan gelen verileri mysql_real_escape_string fonksiyonundan geçirirsen sorun hallolur.

    $kadi = mysql_real_escape_string($_POST["kadi"]);
    $sifre = mysql_real_escape_string($_POST["sifre"]));


    Edit: PHP artık neredeyse mysql fonksiyonlarından desteğini çekti diyebilirim bilgin olsun. mysql_ yerine mysqli_ fonksiyonlarını kullanabilirsin veya PDO sınıfını.



    < Bu mesaj bu kişi tarafından değiştirildi Revolution -- 15 Ağustos 2017; 11:49:46 >
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.