セッション管理
セッション管理は、API セキュリティのサービス拒否(DoS)に対するベストプラクティスです。 セッションは、訪問者がサイトに滞在した時間を表し、管理者ユーザーまたは顧客がアカウントにログインしている時間とは関係ありません。
セッションは、同じユーザーに関連付けられたネットワーク HTTP 要求および応答トランザクションのシーケンスです。 これは、クライアント(管理者)がサーバーにアクセスする際に、そのクライアントのデータに関連付けるための方法です。 セッションは、アクセス権やローカライゼーション設定などの変数を確立するために使用されます。これらの変数は、セッション中にユーザーが web アプリケーションを使用して行うすべてのインタラクションに適用されます。
セッションサイズ
管理者ユーザーとストアフロント訪問者の最大セッションサイズを制限するには、以下の設定を使用します。
- Max Session Size in Admin - セッションの最大サイズをバイト単位で制限します。
0
を使用して無効にします。 - Max Session Size in Storefront - セッションの最大サイズをバイト単位で制限します。
0
を使用して無効にします。
256000
バイト(256 KB)に設定されます。最大セッションサイズを設定するには:
-
管理者 サイドバーで、Stores/Settings/Configuration に移動します。
-
左側のパネルで「Advanced」を展開し、「System」を選択します。
-
「 」 Security クションを展開して、セッション設定にアクセスします。
{width="600" modal="regular"}
-
新しいセッションのサイズをバイト単位で入力します。
note warning WARNING 値の設定が低すぎると、問題が発生する可能性があります。 デフォルトの 256000 バイト以下のオプションのいずれかを設定すると、警告メッセージが表示されます。 「No」をクリックすると、システムによって値が 256000
に変更されます。 -
「Save Config」をクリックします。
管理セッション
最大セッションサイズを超えると、エラーメッセージが表示され、セッションサイズの制約が var/log
ディレクトリに記録されます。
セッションサイズを低く設定しすぎると管理者にアクセスできなくなる場合は、CLI を使用して設定をリセットします。
bin/magento config:set system/security/max_session_size_admin 256000
ストアフロントセッション
最大セッションサイズを超えると、エラーは表示されませんが、セッションサイズの制約が var/log
ディレクトリに記録されます。
セッションの検証
Adobe CommerceとMagento Open Sourceを使用すると、セッションの固定攻撃の可能性や、ユーザーセッションの毒物またはハイジャックを試みることに対する防御手段として、セッション変数を検証できます。 セッション検証設定は、各ストア訪問の間にセッション変数を検証する方法、およびセッション ID がストアの URL に含まれるかどうかを決定します。
技術情報については、設定ガイド の セッションストレージに Redis を使用するを参照してください。
検証では、検証変数の値とユーザーのデータに保存されているセッションデータを比較することで、訪問者が言った通りの $_SESSION
であるかを確認します。 情報が期待どおりに送信されず、対応する変数が空の場合、検証は失敗します。 セッション検証設定に応じて、セッション変数が検証プロセスに失敗した場合、クライアントセッションは直ちに終了します。
すべての検証変数を有効にすると攻撃を防ぐのに役立ちますが、サーバーのパフォーマンスにも影響を与える可能性があります。 デフォルトでは、セッション変数の検証はすべて無効になっています。 設定を試して、Adobe CommerceまたはMagento Open Sourceのインストールに最適な組み合わせを見つけることをお勧めします。 すべての検証変数をアクティブ化すると、制限が過度に厳しくなる可能性があり、プロキシサーバーを通過するインターネット接続や、ファイアウォールの内側から発生するインターネット接続を持つ顧客へのアクセスが妨げられる可能性があります。 セッション変数とその使用方法について詳しくは、Linux® システムのシステム管理ドキュメントを参照してください。
セッション検証を設定するには:
-
管理者 サイドバーで、Stores/Settings/Configuration に移動します。
-
左側のパネルで「General」を展開し、「Web」を選択します。
-
「 」を展開し、「Session Validation Settings」セクションを展開します。
-
各設定オプションを設定します。
-
Validate REMOTE_ADDR — リクエストの IP アドレスが
$_SESSION
変数に格納されている IP アドレスと一致することを確認するには、Yes
に設定します。 -
Validate HTTP_VIA – 受信リクエストのプロキシ アドレスが
$_SESSION
変数に格納されているアドレスと一致することを検証するには、Yes
に設定します。 -
Validate HTTP_X_FORWARDED_FOR — リクエストの転送先アドレスが
$_SESSION
変数に格納されているアドレスと一致することを検証するには、Yes
に設定します。 -
Validate HTTP_USER_AGENT — セッション中にストアにアクセスするために使用されるブラウザまたはデバイスが、
$_SESSION
変数に格納されている値と一致することを確認するには、Yes
に設定します。
-
-
完了したら、「Save Config」をクリックします。
管理セッションの有効期間
セキュリティ対策として、管理者 は、最初、キーボードが無操作状態になった 900 秒(15 分)が経過するとタイムアウトするように設定されています。 作業スタイルに合わせて、セッションの有効期間を調整できます。
管理者セッションの有効期間を調整するには:
-
管理者 サイドバーで、Stores/Settings/Configuration に移動します。
-
下にスクロールして、左側のパネルの Advanced を展開します。
-
「Admin」をクリックします。
-
「 」を展開し、「Security」セクションを展開します。
-
Admin Session Lifetime (seconds) に、セッションがタイムアウトするまでアクティブなままである秒数を入力します。
{width="600" modal="regular"}
-
完了したら、「Save Config」をクリックします。##管理者セッションの有効期間
セキュリティ対策として、管理者 は、最初、キーボードが無操作状態になった 900 秒(15 分)が経過するとタイムアウトするように設定されています。 作業スタイルに合わせて、セッションの有効期間を調整できます。
管理者セッションの有効期間を調整するには:
-
管理者 サイドバーで、Stores/Settings/Configuration に移動します。
-
下にスクロールして、左側のパネルの Advanced を展開します。
-
「Admin」をクリックします。
-
「セキュリティ」セクションを展開します。
-
Admin Session Lifetime (seconds) に、セッションがタイムアウトするまでアクティブなままである秒数を入力します。
{width="600" modal="regular"}
-
完了したら、「Save Config」をクリックします。