ここで2つの質問を読みました。最初の質問「ユーザーがログインしているかどうかを判断するためのベスト プラクティスは何ですか?」と 2 番目の質問「Session-Hjacking と Session-Fixation の懸念はありますか?」
最初の質問:
私が扱ってきたほとんどの Web アプリ/CM には、ユーザー オブジェクトがあります。コードの観点から見ると、このオブジェクトには特に特別なことはなく、ユーザーを表すオブジェクトにすぎません。現在ログインしているユーザーのユーザー オブジェクトは、セッションに保存されています。$_SESSION['user']
Drupal (およびその他のプラットフォーム) では、現在ログインしているユーザーを返すために a 関数が使用され、ユーザーがログインしていない場合は False が返されます。
例:
function user(){
if( isset($_SESSION['user') and
is_object($_SESSION['user'] and
get_class($_SESSION['user']=='myUserClass')) ){
return $_SESSION['user'];
}else{
return False;
}
}
したがって、あなたの例ではif ( user() ) { CODE }
、すべてのオブジェクトがif
節で True として評価されるため、動作が見られます。
2 番目の質問: セッション ハッキングとセッション固定は、ここでは特に問題ではありません。クライアント (Web ブラウザー) は、サーバーの $_SESSION 配列にアクセスできません。要するに、はい、ここで物事を混同しています。