2

セッションの固定を避けるために、私はすべての PHP ページの冒頭で次のコードを使用します。

session_set_cookie_params( 900, '/', $domain, 1, 1 );
session_start();
session_regenerate_id( true );

ただし、ページの更新が速すぎる場合、または複数の ajax リクエストの場合、セッション ID は無効になります。

この問題なしでセッション固定を回避する方法はありますか?

4

2 に答える 2

2

たとえば、5 分ごとにセッション ID のみを再生成する方法のサンプルを次に示します。

    // Sets the session name to the one set above.
session_name($session_name);

// Start the PHP session
session_start();             

// Set last regen session variable first time
if (!isset($_SESSION['last_regen'])) {
    $_SESSION['last_regen'] = time();
} 

// Set session regeneration time in seconds
$session_regen_time = 60*5;

// Only regenerate session id if last_regen is older than the given regen time. 
if ($_SESSION['last_regen'] + $session_regen_time < time()){
    $_SESSION['last_regen'] = time();
    session_regenerate_id(true);   
}
于 2015-02-16T20:52:58.203 に答える