wmaraci reklam
lidertakipci

php login güvenliği hakkında yardım :/

10 Mesajlar 1.665 Okunma
advertseo
wmaraci reklam

rckx2 rckx2 rckx2 Kullanıcı
  • Üyelik 18.03.2014
  • Yaş/Cinsiyet 30 / E
  • Meslek Web Designer
  • Konum Ankara
  • Ad Soyad E** Ş**
  • Mesajlar 80
  • Beğeniler 15 / 9
  • Ticaret 2, (%100)
merhabalar admin login sayfa kodlarımda sanırım açık var bunu nasıl duzeltebilirim? Çok ugrastım fakat acık mevcut sanırım. Kodları aşağıda paylasıyorum sımdıden tesekkurler.

index

Yönetim Paneli Girişi












giris.php
session_start();
include("ayar.php");

$kullanici = mysql_real_escape_string($_POST['kullanici']);
$sifre = mysql_real_escape_string($_POST['sifre']);

$kullanici_sor = mysql_query("SELECT * FROM admin WHERE isim='{$kullanici}' LIMIT 1") or die (mysql_error());
$admin = mysql_fetch_array($kullanici_sor);

if($_POST["kullanici"] == "" and $_POST["sifre"] == "")
{
echo "
Hata!.. Kullanici adi veya Sifre yanlis.
";
header("Refresh: 2; url=index.php");
}else{

if(isset($_POST["kullanici"]))
{
if (($_POST["kullanici"] == $admin['isim']) and ($_POST["sifre"] == $admin['sifre']) and ($_SESSION["kod"] == $_POST["kod"]))
{
$_SESSION["giris"] = "true";
$_SESSION["isim"] = $_POST["kullanici"];
$_SESSION["sifre"] = $_POST["sifre"];
header("Location: admin-panel.php");
exit;
} else {
echo "
Hata!.. Kullanici adi veya Sifre yanlis.
";
header("Refresh: 2; url=index.php");
}
}

}
?>



ic sayfalarda kullanıcı şifre ile giriş yapmadan sayfanın acılmaması ıcın kullandıgım kod :

session_start();
if(!isset($_SESSION["giris"]))
{
echo 'Bu sayfayi göruntuleme yetkiniz yoktur.';
return;
}
?>



Yardımlarınızı beklıyorum sımdıden tesekkurler
 

 

rckx2
wmaraci
reklam

barisay barisay WM Aracı Kullanıcı
  • Üyelik 14.02.2013
  • Yaş/Cinsiyet 33 / E
  • Meslek Seo, Wordpress, Security
  • Konum Konya
  • Ad Soyad B** A**
  • Mesajlar 1386
  • Beğeniler 146 / 428
  • Ticaret 65, (%100)
2 giriş yaparsınız birinde mysql birinde php ile kullanıcı adı giriş yaptırırsınız.
 

 

skype: baris.ay.

rckx2 rckx2 rckx2 Kullanıcı
  • Üyelik 18.03.2014
  • Yaş/Cinsiyet 30 / E
  • Meslek Web Designer
  • Konum Ankara
  • Ad Soyad E** Ş**
  • Mesajlar 80
  • Beğeniler 15 / 9
  • Ticaret 2, (%100)
mevcut kodlar guvenılırmı pekı?
 

 

rckx2

ahmetm ahmetm WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 26 / E
  • Meslek öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad A** M**
  • Mesajlar 50
  • Beğeniler 2 / 6
  • Ticaret 0, (%0)
Guvenilir ama strip tags kullan ve array select where from gibi kelimeleri süzgeçten geçirip engelle.
 

 

wmaraci
wmaraci

Batuhan Batuhan Kendine webmaster Kullanıcı
  • Üyelik 08.05.2011
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad B** B**
  • Mesajlar 3455
  • Beğeniler 783 / 1009
  • Ticaret 1, (%100)
ASLA şifreleri veritabanında öylece saklamayın. Şifreleri saklamanın güvenli yolu şifrenin hash değerini hesaplamak, bunu veritabanına kaydetmek ve sorgulama yaparken kullanıcının girdiği değerin de hashını hesaplayarak iki hashı karşılaştırmaktır.
 

 

rckx2 rckx2 rckx2 Kullanıcı
  • Üyelik 18.03.2014
  • Yaş/Cinsiyet 30 / E
  • Meslek Web Designer
  • Konum Ankara
  • Ad Soyad E** Ş**
  • Mesajlar 80
  • Beğeniler 15 / 9
  • Ticaret 2, (%100)
Ek Olarak: array select where from gibi kelimeleri süzgeçten nasıl gçirebilirim? kod üzerinde bir ornek vermeniz mumkunmudu


$kullanici = htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['kullanici'])));
$sifre = htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['sifre'])));

Bu Kullanım dogrumudur? Bu dogru ise bu güvenliği biraz daha artırıyor değilmi?
 

 

rckx2

kdetry kdetry Backend PHP Developer Kullanıcı
  • Üyelik 07.05.2014
  • Yaş/Cinsiyet 32 / E
  • Meslek Backend PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad M** T**
  • Mesajlar 26
  • Beğeniler 3 / 2
  • Ticaret 0, (%0)
$_POST["kullanici"]

bunu böyle kullanırsan sql injection yersin. Biri gelir sorguyu kapatıp drop table'ı yapıştırır.
 

 

ahmetm ahmetm WM Aracı Kullanıcı
  • Üyelik 15.08.2014
  • Yaş/Cinsiyet 26 / E
  • Meslek öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad A** M**
  • Mesajlar 50
  • Beğeniler 2 / 6
  • Ticaret 0, (%0)
$veri = $_POST['veri'];
$sansur = array('SELECT','DROP','TABLE');
$edit = array('','','');
$duzenle = str_replace($sansur,$edit,$veri);
Boyle suzebilirsin arraya eklersin mysql komutlarini.
sansur degiskenine ekledigin kadar komut icin asagida da ' koy ki engellesin.
POST ederkende mysql real escape string ve strip tags kullan.
 

 

AknOzgen AknOzgen WM Aracı Kullanıcı
  • Üyelik 29.04.2014
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Çanakkale
  • Ad Soyad A** Ö**
  • Mesajlar 17
  • Beğeniler 3 / 2
  • Ticaret 0, (%0)
$_POST u bir fonksiyon ile kullan güvenlik önlemlerini orda daha rahat ayarlarsın
 

 

krmylmz krmylmz Netiyi Kullanıcı
  • Üyelik 26.11.2014
  • Yaş/Cinsiyet 36 / E
  • Meslek Php Developer
  • Konum Amasya
  • Ad Soyad K** Y**
  • Mesajlar 89
  • Beğeniler 1 / 26
  • Ticaret 0, (%0)
$kullanici = addslashes(strip_tags($_POST["kullanici"]));
$sifre = addslashes(strip_tags($_POST["sifre"]));


bu şekilde alırsanız post veya getleri hiçbir sorununuz kalmaz (:

bir diğer konu sayfalarınızın karakter kodlamalarını utf-8 yapınız. bu sql injection sorununuza çok önemli bir katkı sağlayacaktır
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al