2012-08-28 4 views
0

현재 내 친구와 나 자신이 사이트에서 함께 작업하고 있습니다. 로그인 시스템이 다운되었지만 세션을 사용 중입니다. 내 친구는 세션을 선호하지만 나 자신은 항상 로그인을 위해 쿠키를 사용했습니다. 계속해서 우리는 데이터베이스와 비교할 수있는 세션이 두 번 이상 있어야한다고 말하면서 ID를 모조리 공격 한 사람이 아니라 정확한 사용자인지 확인합니다. 예를 들어하나의 세션으로 보안이 충분합니까?

:

$_SESSION['id'] = $YourId; 
$_SESSION['salt'] = $SomethingElseTheDatabaseHas; 

이 대신하여 데이터베이스를 비교할 수있는 단 하나 개의 세션이보다 안전하게 만들기.

+0

http://stackoverflow.com/questions/328/php-session-security. 나는 당신이 2 세션을 갖는 것에 대해 말하는 것을 따르지 않습니다. 사람들이 'ID를 훔치다'고 걱정한다면 [세션 고정] (https://www.owasp.org/index.php/Session_fixation)을 읽어보십시오. –

+0

참고 : http://stackoverflow.com/questions/244882/what-is-the-best-way-to-implement-remember-me-for-a-website – Mike

+0

기본적으로 쿠키를 사용한다고 가정 해 보겠습니다. ID가 하나 인 쿠키가 있다면 간단하고 쉽게 변경할 수 있습니다. 따라서 데이터베이스와 비교할 두 개 이상의 쿠키가 있습니다. – Jake

답변

8

세션 데이터가 서버 측에 저장되므로 보안을 위해 다중 세션 변수를 사용하여 정보를 저장하지 않습니다. 클라이언트가 세션에 대해 알고있는 유일한 것은 쿠키에 저장되는 세션 ID입니다. 서버는 세션 ID를 사용하여 사용자의 데이터를 검색합니다. 사용자를 식별하기 위해 쿠키에 저장된 해시를 사용하는 경우 기본적으로 동일한 작업을 수행하지만 사용자의 데이터로 작업하는 것이 훨씬 쉬워 지므로 세션을 사용할 수도 있습니다.

쿠키를 사용하여 데이터를 저장한다는 것이 정확히 무엇인지 모르겠지만, 클라이언트가 서버가 인증에 사용하는 사용자 ID를 가진 쿠키를 갖게된다는 것을 의미하는 경우, 기본적으로 사용자는 원하는 사람이 될 수 있습니다.

관련 문제