• 03-07-2014, 10:11:59
    #1
    Merhabalar,

    Kullanıcı girişi işlemlerinde içime sinmeyen bir durum mevcut. Bu konuda yeterli bilgim olmadığı için de nasıl bir fikir yürüteceğimi bilmiyorum. Kullanıcı oturum açtığı zaman

    $_SESSION["login"]
    şeklinde session oluşturup sayfalarda bu değer var mı yok mu şeklinde kontrolünü yaparak kullanıcının giriş yapıp yapmadığını kontrol ediyorum. Aynı işlemi localhostumda başka bir dizindeki scriptimde de yapıyorum ve session adı aynı. Bu iki scriptte de kullanıcı adı ve şifreler aynı. Dolayısıyla bir scriptte kullanıcı girişi yaptığım zaman diğer tarafta da giriş yapmış oluyorum. Bunu engellemenin ve daha güvenli kullanıcı oturum kontrolü sağlamanın yolu nedir? Nasıl bir yol izlemeliyim? Örnek vererek açıklayabilir misiniz?

    Teşekkürler.
  • 03-07-2014, 10:20:42
    #2
    Platin üye
    takipteyim

    GT-N7100 cihazımdan Tapatalk 4 ile gönderildi
  • 03-07-2014, 10:28:20
    #3
    Bu işlem sadece localhost için geçerli. Aynı hostingde de olsa oluşturulan oturum değişkeni sadece o siteyi aittir.

    Localhostunda iki adet sitenin isimleri haber ve yazılım olsun sen bunu xxx.com/haber ve xxx.com/yazılım isimleriyle uygulama yapmış bulunuyorsun.

    Yinede bu şekilde olmasını istemiyorsan ;

    Dilersen login değerini bir sitende login diğerinde farklı bir isimle örneğin login2 olarak iki sitede farklı yapabilirsin ya da dizi halinde yapabilirsin ama sonuç olarak aynı değer değişik parametlere atanacaktır.

    $_SESSION["login"]
    $_SESSION["login2"]
  • 03-07-2014, 10:30:11
    #4
    Sağlıklı bir inceleme yapıp öneride bulunabilmemiz için üye giriş sayfanızın ve üye çıkış sayfanızın kodlarını paylaşmanız gerekli.
  • 03-07-2014, 10:31:55
    #5
    Misafir
    Bir session ile de session'ın hangi sitede kaydedildiği bilgisini tutatabilirsin.
    Sadece local'desession çakışması olur. Sunucuda bu tarz problem yaşamazsın.
  • 03-07-2014, 10:50:33
    #6
    tecnohalil adlı üyeden alıntı: mesajı görüntüle
    Sağlıklı bir inceleme yapıp öneride bulunabilmemiz için üye giriş sayfanızın ve üye çıkış sayfanızın kodlarını paylaşmanız gerekli.
    login:
    if($_POST):
     	$return = array(); 
    	$username = htmlentities(mysql_real_escape_string($_POST["username"]));
    	$ask = $database->query("SELECT * from tm_members where username='$username'")->fetch();
    	if($_POST["username"] == "" and $_POST["password"] == ""):
    		$return["error"] = "hata";
    	else:
    		if(isset($_POST["username"])):
    			if (($_POST["username"] == $ask["username"]) and (sha1(base64_encode(md5(base64_encode($_POST["password"])))) == $ask['password'])):
    				$_SESSION["login"]          = "true";
    				$_SESSION["username"]       = $_POST["username"];
    				$_SESSION["password"]       = $_POST["password"];
    				$return["url"] 				= "dashboard.php";
    			else:
    				$return["error"] = "Kullanıcı Yok";
    			endif;
    		endif;
    	endif;
    	echo json_encode($return);	
    endif;
    logout:

    session_start();
    session_destroy();
    header("Location: index.php");


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:50:33 -->-> Daha önceki mesaj 10:47:00 --

    yakoSin adlı üyeden alıntı: mesajı görüntüle
    Bir session ile de session'ın hangi sitede kaydedildiği bilgisini tutatabilirsin.
    Sadece local'desession çakışması olur. Sunucuda bu tarz problem yaşamazsın.
    http://meteoncu.com/php-uyelik-siste...uvenlik-duvari

    Şu makaledeki ilk açıklamaları okuyunca korktum açıkçası.
  • 03-07-2014, 11:04:42
    #7
    Misafir
    loc adlı üyeden alıntı: mesajı görüntüle
    login:
    if($_POST): $return = array(); $username = htmlentities(mysql_real_escape_string($_POST["username"])); $ask = $database->query("SELECT * from tm_members where username='$username'")->fetch(); if($_POST["username"] == "" and $_POST["password"] == ""): $return["error"] = "hata"; else: if(isset($_POST["username"])): if (($_POST["username"] == $ask["username"]) and (sha1(base64_encode(md5(base64_encode($_POST["password"])))) == $ask['password'])): $_SESSION["login"] = "true"; $_SESSION["username"] = $_POST["username"]; $_SESSION["password"] = $_POST["password"]; $return["url"] = "dashboard.php"; else: $return["error"] = "Kullanıcı Yok"; endif; endif; endif; echo json_encode($return); endif;
    logout:

    session_start(); session_destroy(); header("Location: index.php");


    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:50:33 -->-> Daha önceki mesaj 10:47:00 --



    http://meteoncu.com/php-uyelik-siste...uvenlik-duvari

    Şu makaledeki ilk açıklamaları okuyunca korktum açıkçası.

    Orda biraz paranoya var gibi geldi bana. Ben kendi kullandığım yapıyı anlatayım.

    Formdan doldurulan değerler veritabanında varsa, 4 session oluştur.
    kullanici_id , giris , username , pass(şifrelenmiş hali)

    Her sayfada sessionlardan bu değerleri alır, bu bilgilerle bir üye kaydı olup olmadığına bakarım. Sistem üzerinden şifre değiştiğinde de, otomatik olarak login'e atıyor haliyle, ki olması gerekende bu bence.

    Benim sistemde, session'a müdahele edilse bile kullanıcının şifresinin şifrelenmiş halini bilmesi lazım ki sisteme girebilsin. Verdiğin linkteki yapıda da benzer işi üretilen kod yapıyor.

    Ayrıca ordaki sistem botlara engel koymuyor sadece limitlendiriyor. 2sn'de bir işleme izin veriyor.
  • 03-07-2014, 11:15:01
    #8
    yakoSin adlı üyeden alıntı: mesajı görüntüle
    Orda biraz paranoya var gibi geldi bana. Ben kendi kullandığım yapıyı anlatayım.

    Formdan doldurulan değerler veritabanında varsa, 4 session oluştur.
    kullanici_id , giris , username , pass(şifrelenmiş hali)

    Her sayfada sessionlardan bu değerleri alır, bu bilgilerle bir üye kaydı olup olmadığına bakarım. Sistem üzerinden şifre değiştiğinde de, otomatik olarak login'e atıyor haliyle, ki olması gerekende bu bence.

    Benim sistemde, session'a müdahele edilse bile kullanıcının şifresinin şifrelenmiş halini bilmesi lazım ki sisteme girebilsin. Verdiğin linkteki yapıda da benzer işi üretilen kod yapıyor.

    Ayrıca ordaki sistem botlara engel koymuyor sadece limitlendiriyor. 2sn'de bir işleme izin veriyor.
    Peki login kodlarımın şuanki haliyle ne yapmamı önerirsiniz?
  • 03-07-2014, 11:30:03
    #9
    Takipteyim.