İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Php ile Cookie Kontrol

S_HA_DO_W

0
İyinet Üyesi
Katılım
30 Haziran 2008
Mesajlar
8
Reaction score
0
Selam Arkadaşlar
Ben Asp den Php ye Geçiş Yaptım
İlk Olarak Bir Üyelik Sistemi Yapmak İstiyordum
Yanlız Bir Sorun İle Karşılaştım
Formdan Gelen Verileri Kontrol Ettirmekte Sorun Yok
Üyelik Varsa yada Yoksa Gibi Kontroller Tamamda Cooiekde Sorun Yaşıyorum Sanırım
Neyse Kodlara Geleyim
Şu Şekilde Bir Cookie Kontrolü Yaptırıyorum

Kod:
<?
$cookie=$_COOKIE['kullanici']; 
if($cookie==""){
echo "
<form action=\"gir.php\" method=\"post\" >
<label>Kullanici Adi : </label>
<input name=\"kul\" type=\"text\" /><br>
<label>Sifre : </label>
<input name=\"sif\" type=\"password\" /><br>
<input name=\"buton\" type=\"submit\" value=\"Login\" >
</form><br>
<a href=\"uyeol.php\">Register</a>* 
"; 
}
else{ 
$tarih=date("d/m/y"); 
echo "Hosgeldin $cookie | Suan Tarih $tarih "; 
} 
?>
ilk girişte bir sorun yok direk form alanı çıkıyor
sonra formdan bilgileri gönderdiğim gir.php kodları

Kod:
<?
include "baglanti.php"; 
$kullanici=$_POST["kul"]; 
$sifre=$_POST["sif"]; 
if(($kullanici=="")or($sifre=="")){ 
echo "Lutfen Bos Alan Birakmayiniz"; 
}else{ 
$uyesor=mysql_query("select * from tkullanici where username='$kullanici' and sifre='$sifre'"); 
if(@mysql_num_rows($uyesor)>0){ 
echo "Hesabiniz acildi* 
Hosgeldiniz $kullanici 
"; 
setcookie("kullanici",$kullanici);
echo "Anasayfaya Donmek için <a href=index.php>Tıklayınız</a>"; 
}else{ 
echo "Başarısız Deneme"; 
} 
} 

?>

burdada herhangi bir sorun yok
kontrolleri yaptıktan sonra şu çıktıyı alıyorum
Hesabiniz acildi Hosgeldiniz admin Anasayfaya Donmek için Tiklayiniz
ama anasayfaya döndüğümde
karşıma tekrar giriş formu çıkıyor
yani çıkması gereken
Hosgeldin $cookie | Suan Tarih $tarih
kısmı çıkmıyor nerde yanlış yapmışım hatam ne söylerseniz sevinirim
Bu sorun local de çalışıyorum diye olabilir mi ?..
 

S_HA_DO_W

0
İyinet Üyesi
Katılım
30 Haziran 2008
Mesajlar
8
Reaction score
0

kardeş bende yeni olduğum için arayarak yaptım
bu kodlarıda çalışan bir üyelik sisteminden aldım
ama anlamadığım şey cookie kontrolü yaptırıyorum
ama yine karşıma form alanı çıkıyor
yani çıkması gereken mesaj çıkmıyor
kodda herhangi bir yanlış varmı diye merak ettim :s
 

Raiden

0
İyinet Üyesi
Katılım
13 Ocak 2005
Mesajlar
339
Reaction score
0
cookideki değeri aynen o şekilde kullancaksan ve magic_quotes_gpc kapalı durumda ise sql injection açığına yol vermiş olursun.

ufak bir cookie editlemesi ile şifreler ele geçirebilir.

örnek vermek gerekirse. diyelimki cookiedeki değeri aynen aldık. ve sql sorgumuza dahil edices

cookie yi şöyle düzenlersek peki ne olcak?

PHP:
kullanici' OR sifre='
böyle olduğunda sql cümlesi aşağıdaki gibi şekil değiştirir.

PHP:
select * from tkullanici where username='kullanici' OR pass= '

pass= den sonra bir tane tek tırnak vardır forum escape ediyor. bilginize. görüldüğü gibi hiç hoş bir durum değil.

dipnot: magic_quotes_gpc kapalı ise bu durum oluşur aksi taktirde php kendisi tırnakları escape eder.

ufak bir örnek:

http://yusuf.dizaynnet.com/dnm.php?u=admin'+OR+pass='

bakarsanız ekrana admin tablosundaki ilk kayıtlı kullanıcının bilgileri yansıyacaktır.

PHP:
<?php
$db = mysql_connect("localhost","root","");
mysql_select_db("targaf",$db);
$u = $_GET['u'];
$p = $_GET['p'];
$s = mysql_query("SELECT * FROM admin WHERE user='$u' AND pass='$p'");
echo ("SELECT * FROM admin WHERE user='$u' AND pass='$p'");
$q = mysql_fetch_array($s);
print_r($q);
?>

eğer hiç bir filtreleme yapmassak sonuç bu olur. gelen değerleri sql e dahil ederken mysql_real_escape() addslashes() veya mysql_real_escape_string()
gibi fonksiyonlardan geçirilmesinin faydası olacaktır.

iyi günler.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst