2012-10-03 3 views
2

사용자가 계정을 만들 때 데이터베이스에서 고유하고 자동 증가 된 사용자 아이디가 제공됩니다. 따라서 첫 번째 사용자의 사용자 ID는 1이고 두 번째 사용자의 사용자 ID는 2입니다. 내가 로그인했을 때 사용자 ID를 저장하기 위해 PHP 세션을 사용하여 로그인 상태를 유지했습니다. 여러 기사를 읽은 후 PHP 세션이 내가 만든 것처럼 PHP 세션이 절대로 필요하지 않음을 알게되었습니다 (쉽습니다 해커가 각 사용자의 PHP 세션 사용자 ID를 결정할 수 있도록합니다. 제 질문은 각 사용자의 사용자 ID를 생성하기 위해 고유 한 사용자 이름을 기반으로 md5 또는 복어를 사용한다면 PHP 세션을 안전하게 유지할 수 있습니까?PHP 세션 보안 유지

+3

PHP 세션은 자신의 ID와 당신을 위해 모든 것을 생성합니다. 당신이해야 할 일은 없습니다. 단순히 세션 데이터에 ID를 저장하는 경우 아무런 문제가 없습니다. 기본 세션 ID를 재정의하는 것은 다른 이야기이며 큰 문제입니다. – Brad

+0

해당 사용자와 관련된 데이터베이스에서 가져온 ID를 세션에 저장하고 있습니다. 그래서'$ session [ 'user_id']'는 데이터베이스에서 얻은 사용자 ID를 참조합니다. – jason328

+0

그러면 구현에 문제가 없습니다. – Brad

답변

1

좋은 방법은 항상 로그인 화면으로하고 즉시 임의의 숫자

session_start(); 
$newsessid = somerandomnumberfunction(); 
session_id($newsessid); 

당신은 또한 NE를 생성하는 데에도 session_regenerate_id() 함수를 사용할 수를 사용하여 생성 된 새로운 세션 ID를 강제로 로그인을 게시 할 것 w ID

session_start(); 
session_regenerate_id(); 

좋은 읽기

PHP Session Security

PHP Security Guide: Sessions

+1

이것이 내 질문에 직접적으로 대답하지는 않았지만 그 이후로 의견에서 해결되었으므로 답변 해 주겠다. 게다가 제 질문이 약간 애매한 것 같아서 읽는다면 읽는 것이 좋을 것입니다. – jason328