2010-07-08 4 views
1

PHP 응용 프로그램에서 UserName &을 사용하고 데이터베이스의 사용자 테이블을 검사하여 사용자의 유효성을 확인하십시오. 로그인이 성공 후, 나는 다음과 같이 서버 세션에서 자격 증명을 저장 :php5의 쿠키없는 인증

$_SESSION['username'] = $username; 
$_SESSION['pwd'] = $pwd; 

그리고 사용자가 이미 로그인 한 것을 확인하기 위해 세션을 확인 당신은 아래의 코드를 볼 수 있습니다.

if (empty($_SESSION['userId'])) 
    header("Location: login.php"); 

브라우저에서 쿠키를 사용하지 않도록 설정하면 로그인이 성공하더라도 다른 페이지로 이동할 수 없습니다. PHP 세션이 쿠키를 사용하여 브라우저에 일부 값을 저장한다는 것을 알았습니다. PHP5에서 쿠키없는 세션을 사용할 수 있습니까?

답변

0

예,하지만 원하지 않습니다. 실제로 에만 쿠키 기반 세션을 사용해야합니다. 이것이 PHP 5.3의 기본 설정입니다. 자세한 내용은 session fixation을 참조하십시오.

사용자가 쿠키없이 사이트를 사용할 수 있도록 요구하는 것은 어떤 상황입니까?

0

예, 가능하면 session.use_trans_sid을 사용할 수 있습니다. 그러나 보안 문제가 있습니다.

일반적으로 로그인하려면 쿠키를 수락해야합니다.

또 다른 대안으로는 세션 대신 http 인증을 사용하는 것이지만, 단점도 있습니다.

session id passing을 참조하십시오.

0

당신은 세션 ID를 생성하고, 당신이 만약이 (처럼 login.php에서이 문제를 처리해야이

<?php 
session_start(); 
$session_id = session_id(); 
header('Location: http://www.test.com/?sess_id='. $session_id); 
?> 
+0

처럼 링크를 추가 할 수 있습니다! 빈 ($ _ GET [ 'sess_id'])) { // 코드는 관리자입니까? } – streetparade

관련 문제