2014-06-16 2 views
2

저는 현재 PHP 브라우저 기반 게임을하고 있습니다. 나는 대부분의 스크립트를 끝내지 만 누군가가 쉽게 세션을 해킹 할 수 있다고 걱정합니다.PHP 세션 해킹 방지

사용자가 로그인하고 암호가 맞으면 $_SESSION['logged']이 '1'이됩니다. 사용자는 profile.php로 리디렉션됩니다.

$_SESSION['logged']이 '1'이면 프로필이 표시됩니다. 그러나 $_SESSION['logged']이 없으면 사용자는 다시 index.php로 리디렉션됩니다.

사용자가 $_SESSION['logged']을 (를) 해킹 할 수 있을지 걱정됩니다.

또한 $_SESSION['username']이 있습니다. 대개의 경우 $_SESSION['username']을 사용하여 데이터베이스에서 정보를 가져옵니다. $_SESSION['username']이 변경/해킹 된 경우 '해커'는 다른 '사람'이 될 수 있습니다.

session_regenerate_id 및 session_id()에 대해 들었습니다. 그러나, 나는 그 (것)들을 어디에 두어야할지 모르겠습니다.

감사합니다,

+0

를보고 싶을 경우, 또는 * 클라이언트 *는 할 수 없습니다 '$ _SESSION'에서 값을 변경하십시오. –

+1

'$ _SESSION [ 'logged']'을 저장하면 안됩니다. 토큰 기반 인증을 대신 사용할 수 있습니다. – Raptor

+0

@Raptor 나는이 방법으로 사용자가 admin인지 아니냐를 이해하고, 다른 가장 좋은 방법은 무엇입니까? – M98

답변

3

업데이트 예를 들어, 당신은 모든 십분 또는 변경 한 후 세션 ID를 새로 고침하려는 경우에 새로 생성 된 누구죠와 현재의 세션 ID가 유용 할 수 있습니다를에도 session_regenerate_id 세션과 연관된 사용자의 인증 상태.

당신은 약

을 알아야하고 플레이어를 더 알고 PHP security