「Xをブラウザで見ていたら、位置情報の設定が勝手に変わっていた」、という相談がありました。
不正アクセスかと焦りますが、調べてみると原因は「シークレットモード(プライベートブラウズ)」でのログインでした。
実は、プライバシー保護のためのシークレットモードは、「ログイン」と相性が悪いのです。
1. 起きた現象:設定が勝手に変わっていた
Xの「話題を検索」の設定で、位置情報を使わないようにチェックを外していたはずなのに、ブラウザ版で確認するとチェックが入っていました。
最初は不正ログインを疑いました。
ただ、見覚えのない投稿やDM、不審なデバイスの履歴もありません。
2段階認証も有効になっています。
それでも設定が変わっているのは気持ち悪いものです。
これは、Xの仕様とブラウザの動作による現象の可能性が高いです。
2. なぜ設定が変わるのか
基本的に、Xの位置情報設定はアカウント情報として保存されます。
つまり、どの端末やブラウザでアクセスしても、同じ設定が引き継がれるはずです。
ところが実際には、ブラウザの種類やモードによって設定が変わってしまうことがあります。
2.1. Cookieとセッションの仕組み
ここで少し技術的な話になります。
ウェブサイトでログイン状態を維持する仕組みには、
「Cookie(クッキー)」と「セッション」という2つの要素が関わっています。
Cookieは、ウェブサイトからブラウザに送られる小さなテキストファイルです。
ブラウザはこのCookieを保存し、次回アクセス時にサーバーに送り返します。サーバーはCookieに含まれる「セッションID」という識別番号を見て、「あ、この人は先ほどログインした人だな」と判断するわけです1。
一方、セッションとは、サーバー側で管理される「ログインしてから操作している一連の流れ」のことです。
サーバーはセッションIDと紐づけて、ユーザーの設定情報やログイン状態を記憶しています。
2.2. シークレットモードの特殊な振る舞い
通常のブラウザであれば、この仕組みがきちんと機能します。
しかしシークレットモードは少し違う(Safariではプライベートブラウズモード、Chromeではシークレットモードといいますがほとんど同じ機能のことです)。
「シークレットモード」は、閲覧履歴やCookieを「ウィンドウを閉じるまで一時的に保存し、閉じたら全て削除する」という動作をします2。
重要なのは、シークレットモードのウィンドウを閉じた瞬間にCookieがすべて消えてしまうという点です。
つまり、こういうことが起きます。
- 通常モードのブラウザでXにログインし、位置情報設定を「オフ」にする
- 設定はXのサーバーに保存される
- 別の日、シークレットモードでXを開く
- シークレットモードには以前のCookieがないので、Xは「新しい環境からのアクセス」と判断
- デフォルト設定(位置情報オン)が適用される
これが設定が変わる理由です。
2.3. ブラウザ環境の違いとサーバーの判断
もう一段踏み込むと、サーバー側の判断基準も関係しています。
ウェブサイトは、ユーザーの設定をCookieとサーバーの両方で管理していることがあります。
位置情報のような設定は、本来はアカウント情報としてサーバーに保存されるべきですが、実際にはブラウザの権限設定にも依存します。
シークレットモードでは、多くの場合サードパーティCookieがデフォルトでブロックされます3。
また、位置情報へのアクセス権限もリセットされることがあります。
このため、Xのサーバーは「この環境では位置情報が使えるかどうか確認できない」と混乱して、デフォルト設定に上書きされてしまう可能性があります。
3. セッション管理が複雑化する理由
通常モードとシークレットモードは、技術的には完全に別のブラウジング環境です。
Cookieが共有されないということは、セッションも別々に管理されます。
これは意図的な設計で、シークレットモードの本来の目的は「通常の閲覧履歴と分離する」ことだからです。
3.1. セッションが複数作られる
しかしこれが、ユーザーにとっては混乱を招きます。
Xの「アプリとセッション」を見ると、同じiPhoneなのに複数の項目が表示されることがあります4。
これもシークレットモードの影響が大きいです。
シークレットモードではログインするたびに、新しいセッションIDが発行されます。
ウィンドウを閉じるとCookieは消えますが、サーバー側のセッション記録はすぐには消えません。
結果として、セッション一覧には「iPhone」という項目が何個も並ぶことになります。
実際には全て自分のログイン履歴なのですが、一見すると不正アクセスのように見えてしまう。
3.2. 短時間の繰り返しログインがリスクになる
ちなみに、シークレットモードで何度もログインとログアウトを繰り返すと、サーバー側からは「同じIPアドレスから異なるセッションIDで頻繁にアクセスしている」と見えます。
通常、こういった挙動は不自然です。
不正アクセスやbotの可能性があるとみなされ、アカウントが一時的にロックされることもあります5。
セキュリティ対策として当然の措置ですが、シークレットモードを使っていると意図せずに引っかかる可能性があるわけです。
4. シークレットモードのよくある誤解
シークレットモードについて大きな誤解があるとすれば、
「通信が匿名になる」「安全にログインできる」という認識です。
実際には、シークレットモードは端末内にデータを残さないだけです。
つまり、インターネット上の通信記録は普通に残ります。
アクセス先のウェブサイト、プロバイダ、ネットワーク管理者からは、シークレットモードかどうかに関わらず、アクセス履歴が見えています。
つまり、シークレットモードは「端末内のプライバシー保護」であって、「通信上の匿名性」ではないのです。
4.1. Cookieや履歴削除のタイミング
また、「Cookieや履歴が残らない」というものの、開いている間は Cookieが機能します。
正確には「ウィンドウを閉じたら消える」という意味で、その間は通常モードと同じようにキャッシュも保存されますし、ログイン状態も維持されます。
また、複数のシークレットウィンドウを開いている場合、それらは同じCookieを共有します6。
全てのシークレットウィンドウを閉じて初めて、Cookieが削除されます。
1つのウィンドウでログインしたら、同じシークレットセッション内の他のウィンドウでもログイン状態が保たれるということです。
5. ログインにシークレットモードを使わない方がいい理由
ウェブサービスのセキュリティシステムから見ると、シークレットモードからのログインは不自然に見えることがあります。
- Cookieが毎回リセットされる
- セッションIDが頻繁に変わる
- ブラウザのフィンガープリント(ブラウザの特性を示す情報)が不完全
これらは、botや自動化ツールの特徴と重なります。
そのため、正規のユーザーであっても、アカウントロックや認証エラーが発生しやすくなります。
5.1. 設定が反映されない
また、今回のケースのように、ユーザーが設定した内容が正しく保存・反映されないことがあります。
多くのウェブサービスでは、Cookieとサーバー側の設定を組み合わせて動作しています。シークレットモードではその連携がうまく機能しないことがあるのです。
6. シークレットモードの正しい使い方
シークレットモードは、「一時的な利用」であり、「履歴を端末に残さない」という場面で役立ちます。
- 共有のパソコンやタブレットを一時的に使う
(プレゼント購入など、家族に見られたくない検索をするなど) - 複数アカウントに同時にログインする
(通常モードで1つ、シークレットモードで別のアカウント) - ウェブ開発でキャッシュの影響を受けずに表示確認する
シークレットモードをパソコンで利用することが多く、個人で管理する iPhoneやAndroidスマートフォンでは、使う必要はほとんどありません。
他人に端末を見られる心配がなければ、通常モードで十分です。
「安全だから」という理由でシークレットモードを使うのは、むしろ逆効果になることがある、というのが今回の教訓です。
7. 【補足】セッション管理の仕組み
7.1. セッションIDの発行と照合
ログインの流れを技術的に整理すると、以下のようになります。
- ユーザーがIDとパスワードを入力してログイン
- サーバーが認証を確認し、ランダムな文字列(セッションID)を生成
- サーバーはセッションIDをデータベースに保存し、ユーザー情報と紐づける
- サーバーはセッションIDをCookieに入れてブラウザに送る
- ブラウザはCookieを保存
- 次回アクセス時、ブラウザは自動的にCookieをサーバーに送る
- サーバーはセッションIDを確認し、ログイン状態を維持
シークレットモードでは、ステップ5のCookieがウィンドウを閉じると消えるため、ステップ6以降が機能しなくなります。
7.2. セッションの有効期限
セッションには有効期限があります。
一般的なウェブサービスでは、以下のような期限が設定されています。
- ブラウザを閉じるまで(セッションCookie)
- 一定時間操作がない場合(例:30分間無操作でタイムアウト)
- 明示的に設定された期限(例:ログイン状態を2週間維持)
シークレットモードで使用されるのは、主にセッションCookieです。
つまり、ブラウザを閉じた瞬間にログイン状態が失われる仕組みです7。
サーバー側にはセッション情報が残っていても、ブラウザ側にセッションIDがなければ照合できないため、実質的にログアウト状態になります。
7.3. 複数セッションの発生メカニズム
Xの「アプリとセッション」に複数のデバイスが表示される理由は、サーバー側が異なるセッションとして認識しているからです。
通常モードでログインした場合、同じCookieが使い回されるため、セッションは1つです。しかしシークレットモードでは、ウィンドウを開くたびに新しいセッションIDが発行されます。
サーバー側では、これらを「別々のデバイスからのログイン」として記録します。IPアドレスが同じでも、セッションIDが違えば別のログインと判断されるのです。
さらに、シークレットモードを閉じてもサーバー側のセッションはすぐには削除されません。セッション情報には有効期限があり、期限が切れるまではデータベースに残り続けます。
結果として、セッション一覧には過去の接続履歴が積み重なっていきます。
8. まとめとして
シークレットモードは便利な機能ですが、その仕組みを理解して適切に使わないと、思わぬトラブルを招きます。
特にXのようなSNSでは、設定が変わったり、セッション管理が複雑化したり、場合によってはアカウントロックのリスクにもつながります。
普段使いのアカウントであれば、シークレットモードではなく通常モードでのログインが無難です。どうしても履歴を残したくない一時的な用途にのみ、シークレットモードを活用するのが賢い使い方だと思います。
ブラウザの機能を正しく理解することで、より安全で快適にインターネットを利用できるようになるはずです。
- セッション管理では、サーバーが生成したセッションIDをCookieに保存し、ブラウザが次回アクセス時にそのセッションIDを送信することで、ユーザーを識別します。セッションIDは通常、ランダムな英数字の文字列です。 – CookieとSessionを今度こそ完全に理解する【分かりやすく図解】|Webエンジニア研究室
- シークレットモードでは、セッションCookie(有効期限が設定されていないCookie)がブラウザを閉じると削除される仕組みになっています。ただし、シークレットウィンドウを開いている間は通常通りCookieが機能します。 – シークレット モードでブラウジングする – Google Chrome ヘルプ
- Chromeのシークレットモードでは、サードパーティCookieはデフォルトでブロックされます。これにより、トラッキングや広告配信に使われる外部ドメインのCookieが機能しなくなります。 – シークレット モードでブラウジングする – パソコン – Google Chrome ヘルプ
- Xでは、「設定とプライバシー」→「セキュリティとアカウントアクセス」→「アプリとセッション」でログインしているデバイスとセッションの一覧を確認できます。異なるブラウザやモードからのアクセスは、別々のセッションとして表示されます。 – Xのサードパーティアプリとログインセッションへの権限の付与および取り消し
- 短時間に複数の端末や異なる環境から頻繁にログインを繰り返すと、Xのセキュリティシステムが不審なアクセスと判断し、アカウントが一時的にロックされることがあります。この場合、本人確認手続きが必要になります。 – 複数アカウントでX(旧Twitter)にログインできないときの対処法 | Xの使い方解説サイト
- シークレットウィンドウを複数開いている場合、それらは同じセッションとして扱われ、Cookieやキャッシュも共有されます。すべてのシークレットウィンドウを閉じて初めて、セッションが終了しデータが削除されます。 – 「シークレット モード」でもキャッシュは残る | ホームページ制作・Webマーケティング|株式会社SPC
- セッションCookieは、Max-Age または Expires 属性のない Cookie のことで、現在のセッションが終了すると削除されます。ブラウザによっては再起動時にセッションを復元する機能があり、セッションCookieが復元されることもあります。 – HTTP Cookie の使用 – HTTP | MDN