로그인 스크립트를 php-login.net에서 수정하고 보안을 강화하려고합니다. .PHP 쿠키와 세션 변수
/**
* write user data into PHP SESSION [a file on your server]
*/
$_SESSION['user_name'] = $result_row->user_name;
$_SESSION['user_email'] = $result_row->user_email;
$_SESSION['user_logged_in'] = 1;
/**
* write user data into COOKIE [a file in user's browser]
*/
setcookie("user_name", $result_row->user_name, time() + (3600*24*100));
setcookie("user_email", $result_row->user_email, time() + (3600*24*100));
$this->user_is_logged_in = true;
불행한 부분에 사용자가 로그인 페이지에서, 아무도에 대한 사용자 액세스를 획득가 있는지 확인하기 위해 수표를 쓴 경우이 특정 로그인 스크립트 쿠키 및 세션 모두 변수를 설정 로그인 클래스가 사용자가 해당 페이지에 접속하면 로그인했습니다. 따라서 URL에 직접 입력하면 사람이 로그인 할 필요가 없습니다.
사용자가 로그인했는지 확인하는 가장 좋은 방법을 알고 싶습니다. 현재이 방법을 사용하고 있지만 사용하고 있습니다. 그것은 중복인지 알지 못합니다. (의미 : 쿠키 변수는 항상 세션 변수와 같으므로 두 가지를 모두 체크 할 필요가 없습니까?) 모든 입력이 도움이됩니다.
session_start();
if(!(isset($_COOKIE['user_email']) &&
isset($_SESSION['user_email']) &&
($_COOKIE['user_email']===$_SESSION['user_email']) &&
isset($_COOKIE['user_name']) &&
isset($_SESSION['user_name']) &&
($_COOKIE['user_name']===$_SESSION['user_name']) &&
isset($login) &&
$login->isUserLoggedIn())){
header("location:../../index.php");
exit;
}
와우. 처음부터 시작하십시오. –
그레이트 스콧! 나는 @Relentless와 동의한다. 그러나 기존 코드를 계속 진행해야하는 경우 세션 확인 만 권장합니다. 쿠키를 스크랩하십시오. – PenguinCoder
예, 쿠키가 중복되었습니다. 이미 서버 측 세션 변수를 가리키는 클라이언트 측 쿠키가 있습니다. – Delta