2013-12-10 2 views
2

나는 사용자가 로그인 할 때 간단하고 쉽게 호출 할 수있는 식별 정보를 저장하는 $ _SESSION var를 가지고있다. 사용자가 로그인하지 않아도 마지막으로 방문한 파일을 기록한다. 로그인하면 해당 페이지로 빠르게 돌아갑니다). 미래의 프로그래머를위한 보안 및 이해의 용이성PHP에서 세션 데이터 전달하기

사용자 없음

$_SESSION[$lastPage]; 

내 수석 우려에 기록

$_SESSION[$userid,$username,$first_name,$lastPage]; 

사용자에 기록됩니다.

이러한 옵션 중 실용적입니까, 아니면 더 안전하고 프로그래머에게 이해하기 쉬운 옵션이 누락 되었습니까?

  1. $ _SESSION var을 사용하여 클래스에 액세스하십시오.
  2. sessionWrapper 클래스를 사용하여 $ _SESSION의 값을 모방합니다.
  3. 고유 식별자 만 유지하고 $ _SESSION var에 lastPage 일 수 있습니다. 이 고유 한 식별자가 제공된 경우 데이터베이스에서 관련 정보를 가져 오는 sessionWrapper 클래스를 만듭니다.

여기에 뭔가가 있습니까? 이 글을 쓰면서 나는 옵션 3에 더 가까이 기울어졌지만 여기서는 베스트 프랙티스에 대한 피드백을 정말로 고맙게 생각한다.

+1

배열이기 때문에'$ _SESSION [ 'variable'] = ...'을 사용해야합니다. –

+4

'$ _SESSION [ 'loggedIn'] = true'? 세션 보안에 관심이 있습니까? 견과류 https://www.owasp.org/index.php/Session_Management_Cheat_Sheet를 방문하십시오. PHP 관련 https://www.owasp.org/index.php/PHP_Security_Cheat_Sheet#Authentication_and_Session_Management_Cheat_Sheet –

+0

감사합니다. @MarcelKorpel - 현재 작업 구조가 있습니다. 세션을 수립하는 방법을 궁금하지 않고, 지금은 무엇이 더 나은지를 설명하기 위해이 내용을 정리했습니다. 여기 (상징적으로) 여기에서 시각적으로 표현할 수있는 더 좋은 방법이 있다면 편집 할 것입니다. – smcjones

답변

1

last_page 정보에 대한 쿠키 사용을 고려 했습니까? 나는 당신이 모든 것을 $_SESSION에 두지 않아도된다고 가정하고 있습니다. OK, 미트볼 용입니다. 안전이 문제라면, $_SESSION은 좋지만 최상은 아닙니다. 문제는 졸이다 수 :

  • 당신은 차세대를위한 일을 복잡하게 기꺼이 얼마나

높은 보안 관리자들 필요합니까 얼마나 많은 보안 : PHP 세션은 기본적으로 서버의 액세스 가능한 파일에 저장되므로 앱 내부에 멋지게 캡슐화 된 데이터베이스가 있으면이를 완화 할 수 있습니다. 아주 간단한 캡슐화 클래스 인 한 잘 할 수 있습니다. 옵션 3은 좋은 해결책입니다.

낮은 보안 : 귀하의 개인 $_SESSION 구현을위한 KLOCs을 내려 놓고 기꺼이하지 않은 경우, 나는 당신이 지금 가지고있는 안전 관련 정보를 유지하고, 덜 중요한 정보를 쿠키를 선택할 수 있다고 생각 : last_page입니다 사용자와 관련이 있지만 식별 할 수없는 항목이므로 분리 된 상태로 유지하십시오.

  • 옵션 작은 proyects
  • 큰 proyects에 대한 옵션 2 (좀 편리하고 간단한 래퍼 클래스와이 방법을 사용) 내 관점에서

당신이없는 1 아무것도 놓치지 않고 그냥 결정을 내려야 만합니다.

+0

유용한 답변, 감사합니다! 2 번 옵션을 사용할 것 같아요. – smcjones

+0

예, 이미 아이디어가 있으시 겠지만 더 이상 도움이 필요하시면 언제든지 문의하십시오. – hanzo2001

관련 문제