セキュリティの面でキーの名前が重要かどうか疑問に思っていました。ユニークな名前は一般的な名前よりも安全ですか?
$_SESSION['email']
にユーザーのメールを保存した場合、ユーザーごとに一意であれば、$_SESSION['em_10lettersID']
のようになります。しかし、一般的にセッションにメールを保管することは安全ではないかもしれません。
セキュリティの面でキーの名前が重要かどうか疑問に思っていました。ユニークな名前は一般的な名前よりも安全ですか?
$_SESSION['email']
にユーザーのメールを保存した場合、ユーザーごとに一意であれば、$_SESSION['em_10lettersID']
のようになります。しかし、一般的にセッションにメールを保管することは安全ではないかもしれません。
通常、メールアドレスやその他の機密情報をセッションに保存することはお勧めできません。データベース(またはWebルートの外部にあるフラットファイル - 公衆のwwwユーザーがアクセスできない)で検索できるユーザートークン(MD5ハッシュまたはAES暗号化された秘密の文字列のようなもの)を保存することをお勧めします。データベースまたはデータストアでは、そのキーを使用してコードに取り込む必要がある値を取得できます。
希望に役立ちます。
誤解を解消します。
セッションはサーバー側のストレージです。それ以上のことはありません。このストレージは、固有のトークンを含むクッキーをデバイスに保存することで、デバイス(「ユーザ」)に関連付けられます。各要求では、デバイスはこのクッキー(したがってトークン)をサーバーに送信します。次に、サーバーはトークンを認識し、既存のセッションがこのトークンに存在するかどうかをチェックします。ストレージからセッションをロードし(デフォルトではこのストレージはファイルです)、その内容は$_SESSION
変数に格納されます。
デフォルトでは、クッキーの名前はPHPSESSIDであり、トークンはランダムに生成されたハッシュです。このCookieは、Chrome開発者コンソールの[リソース]タブで確認できます。
ここでセッションとそれに含まれるものは決してユーザーに公開されません(サーバーにという永続化されていることを覚えておいてください)。クライアントは知ることができません。
このルールの例外は、クライアントがサーバーにアクセスできる場合です。しかし、このような場合には、より大きな問題があり、心配する必要があります。
もう1つ注意すべき点は、$_SESSION
はクライアント/ユーザーごとに一意であり、お互いの影響を受けることができないということです。$_SESSION
この説明はいくらか簡略化されています。
ここでは、機密情報をクッキー($_COOKIE
)に保存しないでください。それらはクライアント/ユーザに保存されます!
* "一般的に、メールアドレスやその他の機密情報をセッションに保存することはお勧めできません。" *クッキーを意味するのですか? – ficuscr
はい、クッキーもあります。しかし、OPはクッキーについて尋ねていませんでした。 – TinkerTenorSoftwareGuy