中間者攻撃について
HTTP
あなたのサイトがプロトコルを使用している場合、外部ユーザーセッションのハイジャックが完全に可能であることに注意してください.
セッション ハイジャック攻撃から保護するには、HTTPs を有効にする必要があります。
HTTP は、要求と応答に関連するデータを単純なテキスト (暗号化されていない) として転送します。
セッション ID は Cookie または URL に保持されるため(このオプションは使用しないでください!)、攻撃された MITM はセッション ID を読み取るだけです。次に、MITM 攻撃者は自分のブラウザにセッション ID Cookie を設定し、他のユーザーの ID を所有します。
セッション ID を取得するには、MITM はサーバー システムへのクライアントのネットワーク ルートに関する特権的な場所を必要とします。攻撃者は、クライアント システムとサーバー システムの間にいる必要があります。または、クライアントのネットワークに常駐し、クライアント システムのデフォルト ルーターになるように模倣する必要があります。
セッションの問題について
modx のシステム プロパティsession_handler_classにはどのような値がありますか?
デフォルト値の場合modSessionHandler
、modx はデータベース管理セッションを使用します。標準の PHP セッション処理を有効にするように modx に指示するには、設定を空白のままにします。
キャッシュの問題について
キャッシングは通常、クライアントに送信されたデータ (HTML コードなど) を保持して取得します。通常、キャッシュされたファイルには Cookie はありません。
匿名ユーザー X が別のログイン ユーザーのセッション Cookie を突然取得した場合、modx は何らかの方法で他のユーザーのセッションを見つける必要があります。
セッション ID が非常に長い場合、別のユーザーのセッション ID を推測する可能性はほとんどありません。同様に、別のユーザーの永続的なセッション データを取得する可能性はほとんどありません。
... modx が、正しい持続セッション ファイルを取得するだけでなく、すべての持続セッションのセットを何らかの方法で反復処理しない限り。
したがって: modx のセッション処理内での検索操作に注意してください。
PHP の tick 機能を使用して実行をトレースする
最後の手段として、PHP の tick 機能を有効にすることができます。
アプリの開始時にこれを行います (例: index.php 内):
declare(ticks=1);
register_tick_function('traceStatements', true);
次に、ティック関数を定義します。
function traceStatements() {
$traceInfo = debug_backtrace();
// Use $traceInfo to identify the last method called
// Trace the method to a central log file
// Create a new log file per incoming http request
}
このコードを使用すると、実行中の PHP ステートメントごとtraceStatements()
に get が呼び出されます。このメカニズムを使用して、さまざまなクライアント要求のいくつかのトレースを準備し、相互に比較できます。
参考になるトレース コードについては、こちらを参照してください。