2

Facebook SDK からのログイン URL を要求する場合、stateCSRF を防ぐためにセッションに保存されます。これはFacebookクラスsetPersistentData($key, $value)メソッドで行われます。

$session_var_name = $this->constructSessionVariableName($key);
$_SESSION[$session_var_name] = $value;

その後、私はそれがそこにあり、何も配列を変更できないことを確認するためvar_dump$_SESSIONandを作成しました。そしてほら、そこにあります:exit;$_SESSION

...
'fb_451994004840680_state' => string '6de843508d52d3d4926275ab49280cef' (length=32)
...

だから私はindex.phpファイルを

session_start();
var_dump($_SESSION);
exit;

そしてリフレッシュ。以前に設定されたセッション要素はすべてそこにありますが、facebook の状態はありません

そこで、次のことを試しました:setPersistentData($key, $value)メソッドに別の (ダミー状態の) キーを追加しました:

$_SESSION[$session_var_name] = $value;
$_SESSION['fb_1234567890_state'] = '848a87592acd';
var_dump($_SESSION);
exit;

どちらも var_dump の直後に設定されます。

'fb_451994004840680_state' => string '6de843508d52d3d4926275ab49280cef' (length=32)
'fb_1234567890_state' => string '848a87592acd' (length=12)

index.php でのリフレッシュと var ダンプの後、ダミー キーのみが存在します。

'fb_1234567890_state' => string '848a87592acd' (length=12)


これはどのように可能ですか?

4

0 に答える 0