• カミナリツイッターカミナリtwitter
  • カミナリフェイスブックカミナリfacebook
  • カミナリインスタグラムカミナリinstagram

山陰の情報を発信するカミナリ

ナビ

05

JUNE

ウェブFRIDAY 2020 / 6 / 5

ブラウザがシークレットモード状態か確認する JavaScript ” is-private-mode.js “

ブラウザにより名称が異なりますが、各ブラウザにはログイン情報を残さないモードがあります。

 

各ブラウザごとの呼称
・Google Chrome : シークレットモード (英語版では Incognito mode)
・Firefox : プライベートウィンドウ
・IE / Edge : InPrivate ブラウズ

 

ただし投票システムなど多重投票されると不正につながる等、場合によっては好ましくない状況もあります。

 

is-private-mode.js

下記URLにはそれらの状態になっているかどうかを確認することができるコードが掲載されています。

jherax / is-private-mode.js

ただしこの JavaScriptでは Promise を使っていますので、IEでは動作できません
同ページにTypeScript版も記載されていますので、そちらをトランスパイルして使うといいです。

 

実際に動作を確認する際には下記URLを開きます。
ダイアログボックスで開かれ、シークレットモードなら true , そうでないなら false と表示されます。

https://output.jsbin.com/tazuwif

 

 

なお iOS版の Safari および Chrome では正常にモードを取得できませんでした(2020/6/3現在)。iOS13以降では正常に判定できない旨が報告されていましたが、今後改善することに期待したいですね。

 

 

判定処理について

古い記事(2013/12/16)ではありますが、判定処理について詳しく記載されているブログがありました。

プライベートブラウジングモードの判定 – Please Sleep

一部機能はすでに使えないものもありましたが、技術的な背景を知りたい方にはおすすめです。

 

判定処理を試す

Chromium系では Quota Management API によりオフラインに保存できるストレージ容量の上限値を取得し、その多寡で判断するという手法が使われますが、これが同じ Chromium系でもブラウザによってかなりサイズが異なっているようで判断が難しかったです。

ちなみに Brave が最も高い上限値を出しました。

あと Opera はリロードするたびに上限値が微妙に変化しました。なんでやねん・・・

 

 

関連記事

Chrome のシークレットモードを巡る攻防。プライバシーを守りたいユーザー、収益化を模索するサイト運営者 | ハーバー・ビジネス・オンライン

松本博之隠しプロフィール画像

TEXT by

松本 博之まつもとひろゆき)

1978年、鳥取県米子市生まれ。
株式会社マジックワード WEBシステムの開発・運用を担当。

WordPressの実績多数。表面的な使用方法を把握するだけでなく、WordPressのソースコードを読み解いて対応できます。
国家資格の基本情報処理技術者を保持。

この人が書いた他の記事を読む