로그인 스크립트를 만들고 있는데 사용자를 로그인 할 때 정확히 어디에 session_regenerate_id() 함수를 넣어야하는지 알고 싶습니다. 기능에PHP의 로그인 스크립트에 session_regenerate_id()를 넣을 위치
$user_id = $general->login($username, $password);
$_SESSION['user_id'] = $user_id;
로그는 기본적으로 테이블에 사용자의 자동 증분 ID를 반환하고, 나는 $ _SESSION 변수에 위 그림과 같이 있음을 저장 : 그것은 이렇게이다. 세션 고정 공격을 피하기 위해 session_regenerate_id를 어디에 두어야 하는지를 알고 있기 때문에 세션 변수를 사용하는 로직 부분 만 보여주었습니다. 전후에 값을 할당합니까? 그래서 같이
:
session_regenerate_id(true);
$_SESSION['user_id'] = $user_id;
이후
, 그래서 같은 :$_SESSION['user_id'] = $user_id;
session_regenerate_id(true);
감사합니다.
그래서 바로 할 수 있습니까? 그러나 이전에 그렇게하는 것이 더 합리적이라고 생각하지 않습니까? session_regenerate_id (true)를 할 때와 마찬가지로, 세션을 수행하기 전에 이전 session_id를 제거합니까? –
함수를 호출 할 때 상관 없습니다. 세션이 정확히 같은 순간에 저장되기 때문에 : 스크립트가 종료 될 때. 따라서 주문을 변경하면 스크립트의 동작에서 관찰 가능한 차이가 발생해서는 안됩니다. – fdreger