2016-03-31 17 views
-2

benim OTURUM sucessesfull girişten sonra başlar ve ben gerçekten benim OTURUM değeri ne kadar güvenli olduğunu bilmiyorum

Benim OTURUM değeri burada user name ve benim kod

olduğunu İşte
<?php 
require_once('includes/config.php'); 
if ($user->is_logged_in()) { 
    header('Location: signup.php'); 
} 
if (isset($_POST['submit'])) { 
    $username = filter_input(INPUT_POST, 'username'); 
    $password = filter_input(INPUT_POST, 'password'); 
    if ($user->login($username, $password)) { 
     $_SESSION['username'] = $username; 
     header('Location: index.php'); 
     exit; 
    } else { 
     $error[] = 'Wrong username or password or your account has not been activated.'; 
    } 
} 
?> 

private function get_user_hash($username){ 
     try { 
      $stmt = $this->_db->prepare('SELECT password FROM members WHERE username = :username AND active="Yes" '); 
      $stmt->execute(array('username' => $username)); 
      $row = $stmt->fetch(); 
      return $row['password']; 
     } catch(PDOException $e) { 
      echo '<p class="bg-danger">'.$e->getMessage().'</p>'; 
     } 
    } 
    public function login($username,$password){ 
     $hashed = $this->get_user_hash($username); 
     if($this->password_verify($password,$hashed) == 1){ 
      $_SESSION['loggedin'] = true; 
      return true; 
     } 
    } 

Şimdi benim $_SESSION

ne kadar güvenli olduğunu bilmek gerekir benim fonksiyondur

ve $ _SESSION değerinin güvenliğini nasıl sağlayabilirim?

+0

Oturum verilerini şifreleyin mi? – Juakali92

+0

ama bazı soruda ben şifreli hiçbir anlam ifade etmiyor ve –

cevap

1

İlk olarak, oturumların PHP'de nasıl çalıştığı hakkında daha derin bir anlayışa sahip olmak değerlidir. Eğer session_start() çalıştırdığınızda, PHP, örneğin cari ziyaretçi için bir kimlik kaydeder ve siz oturum kimliği ile bağlantılı bilgileri alan/depolama başlamasını sağlar:

session_start(); // Registered visitor ID on server "B3D4IUC86" 
$_SESSION['password'] = "test1234"; // Stores password for visitor "B3D4IUC86" 
echo $_SESSION['password']; // Retrieves 'password' index for visitor "B3D4IUC86" 

doğrudan güvenli/şifrelenmemiş verileri depolamak için değil en iyi yöntem Bu veriler, aktarma sırasında veya doğrudan erişilebildiğinden, kullanıcının makinesinde. Aksine, makinelerinize bakabileceğiniz ve bilgiyi dahili olarak bulabileceğiniz bir ID saklayın. Bu, tüm verileri aktarmadığınız için ağ aktarım hızlarını da (biraz) artıracak, ancak sadece aradığınız basit bir kimlik olacaktır.

+0

kullanmıyorsa ne kullanıcı adını saklıyorum –

+0

Kullanıcı adının saklanması, bu değere bakabildiğiniz sürece oturumlar için iyidir bir çeşit veritabanı sistemi (MySQL, NoSQL, MongoDB vb)! –

+0

bir çeşit veritabanı sistemi ne anlama geliyor ..? –

İlgili konular