2011-10-25 2 views
1

회원의 대시 보드에 액세스하려면 계정에 로그인 (또는 등록)해야하는 시스템이 있습니다.세션을 언제 시작해야합니까?

제 질문은 ... 어떤 시점에서 session_start()입니까? 로그인 페이지와 등록 페이지에서? 또는 사용자가 성공적으로 인증 한 후에?

감사합니다.

+1

자체 인증 시스템을 만드는 것은 매우 까다 롭습니다. 많은 양의 경험이 있거나 잠시 동안 주제를 공부하지 않았다면 많은 취약점이 발생할 가능성이 있습니다. – outis

+0

session_start()는 사용자 브라우저가 쿠키를 사용하지 않도록 설정되어있을 때마다 호출 될 때마다 새 세션 ID를 생성하므로 세션 관리가 까다 롭고 이러한 사용자를 지원하려는 경우 취약합니다. –

답변

9

세션 데이터에 액세스 할 수있는 모든 페이지에 session_start()을 포함시켜야합니다. 그리고 다른 출력이 완료되기 전에 호출되어야합니다.

1

세션 데이터에 액세스해야하는 페이지에서 세션을 시작하십시오. 성공적인 로그인의 일환으로 session_regenerate_id으로 전화하여 세션 고정을 방지해야합니다.

0

사용자가 인증되면 세션을 시작할 수 있습니다. 후에 S_SESSION의 사용자 관련 정보를 알 수 있고 어디서나이 정보에 액세스 할 수 있습니다.

1

으로 헬게 Helwig은

당신은 모든 페이지의 상단에 session_start()를 추가해야했다. 그러나이 작업을보다 쉽게 ​​수행하려면 PHP 문서를 만들면됩니다. 여기서는 과 같이 모든 중요한 코드를 저장하고 호출합니다. init.php라고하세요.

그러면 각 페이지 상단에 include 'init.php'을 입력하면 코드가 약간 정리됩니다.

0

사용자의 정보를 확인한 후에 세션을 시작해야하며 사용자의 uid를 세션 변수로 설정할 수 있습니다. 프로필, 환경 설정 등과 같은 사용자의 개인 정보를로드하는 데 나중에 유용 할 수 있습니다.

등록 페이지에는 세션을 시작할 필요가 없다고 생각됩니다.

감사

0

귀하의 session_start() 각각 안전하고는 인증 후 액세스 할 때마다 페이지에서 호출됩니다. 사용자를 인증 할 때 로그인 및 등록 페이지 모두에서 세션에 값을 넣습니다. 그러나 일단 사용자가 확인되면 이제는 사용자의 인증이 필요한 모든 페이지에이 기능을 추가해야합니다.

관련 문제