3

Web サイトのログイン ワークフローで PHP $_SESSION 変数を使用しています。Facebook と同じように、サーバーとの間で送受信される各要求に署名するために使用される、サーバーだけが知っている秘密のコードを保存したいと考えています。私の最初のアプローチは、ランダムな文字列を生成し、それを MySQL テーブル内に格納することでしたが、その後、セッション変数について学びました。セッション変数は、デフォルトで、セッション名と ID を保存する Cookie を使用して機能することを知っていますよね? 実際のデータはユーザーのコンピューターに保存されていませんか? したがって、実装したい場合:


# assume that $rand_string is not null and a string
session_start();
$_SESSION['secret'] = $rand_string;

ユーザーがセッション Cookie をデコードして の実際の値を判断する方法はありません$rand_stringよね? データが安全であることを確認したいだけです。それ以外の場合は、スムーズではない MySQL 手法に戻ります。簡単にアクセスして管理できるセッション変数の考え方が気に入っています。

4

4 に答える 4

7

セッションデータはサーバー側に保存されます。

Cookie データはクライアント側に保存されます。

于 2013-06-29T13:55:38.683 に答える
1

はい、その通りです。ユーザーは、セッション ID などについてしか知りません。ユーザーが対応するセッションを識別するためのものです。

残りのデータは一時的にサーバーに保存されます。

あなたのウェブサイトに重大なバグがあるとは思わない限り、訪問者がセッション データを手に入れる方法はありません。

于 2013-06-29T13:58:35.693 に答える