ブラウザから観測
User-Agent Client Hints、Permissions API、Network Information API、Location、Document のポリシーを読みます。権限は状態だけを見て、内容には触れません。
スマホの状態を、ブラウザだけで診断する。 OS・通信・権限・追跡防止を 8 つのチェックで観測し、 Device → Network → Privacy → Risk Judge の流れとして表示します。
インストール不要。診断は端末内で完結し、結果は外部へ送信しません。
ネイティブアプリも常駐エージェントも作りません。ブラウザが公開している事実だけを集め、 端末内で判定して、パイプラインとして描きます。サーバーもデータベースも不要です。
User-Agent Client Hints、Permissions API、Network Information API、Location、Document のポリシーを読みます。権限は状態だけを見て、内容には触れません。
重み 1–3 のチェックを重み付き平均し、総合レベルは最弱のチェックに合わせます。観測できない項目は Unknown としてスコアから除外します。
パイプラインの色、アラート、観測値、対処法を 1 画面に。結果は JSON で保存でき、前回の基準との差分も確認できます。
スマホ特有のリスクに絞り、ブラウザ API で観測できる項目を優先しました。重みは「見る順番」の目安です。
画面ロックは Web から観測できないため、常に Unknown のチェックとして残します。公衆 Wi-Fi はチェック項目にせず、ガイドで扱います。
Device → Network → Privacy → Risk Judge。チェックの状態を色・スコア・差分で表し、全体の流れを 1 枚にします。
総合スコアは重み付き平均、総合レベルは最弱のチェック。平均で弱点を薄めず、見る順番を決めます。
Error / Warning をスコア順に一覧。クリックすると該当チェックへ移動し、理由と対処法を表示します。
現在の結果を基準として localStorage に保存。設定を変えて再スキャンすると、項目ごとの増減が見えます。
各チェックに観測値・データ源・理由・対処法を用意。判定の根拠を追えるようにしています。
診断結果をそのまま保存できます。?demo=1 で合成データを表示し、UI と判定を確認できます。
判定はブラウザ側の純粋関数で行い、レポートには観測した事実と判定を分けて保存します。総合レベルは「Error → Warning → Healthy」の順で最も重いものに合わせます。
| 状態 | 条件の例 | 表示 |
|---|---|---|
| Healthy | OS / ブラウザが更新目安を満たす、HTTPS、主要な権限が未許可 | ミント色。静かに一覧に残る。 |
| Warning | OS / ブラウザの更新推奨、位置情報・カメラ・マイクの許可、低速回線 | 琥珀色。スコアと理由を表示。 |
| Error | HTTP 通信、サポートが古い OS / ブラウザ、unsafe-url の Referrer-Policy |
赤色。アラート最上位。 |
| Unknown | 画面ロック、UA が固定された macOS、Permissions API 非対応 など | 灰色。スコアから除外し、手動確認として残す。 |
Unknown は「安全」でも「危険」でもありません。観測できないものを Healthy に丸めないための状態です。サポート表は 2026-10 時点の静的な目安で、更新が必要です。
ビルド手順はありません。fetch を使わないため、index.html を直接開いても動作します。
# リポジトリ直下で
python3 -m http.server 8000
# ブラウザで開く
http://localhost:8000/MobileSafetyKit/viewer/
# 合成データで表示
...viewer/?demo=1
# 判定ロジックのテスト
node --test MobileSafetyKit/viewer/lib/scanner.test.js
# デモレポートを再生成
node MobileSafetyKit/tools/build-demo-report.js
# 出力: viewer/data/demo-report.json
公開デモの端末名・OS・権限状態はすべて合成値です。実スキャンは、開いたブラウザの情報だけを使います。
OS・通信・権限・ポリシーを観測します。端末内のファイルや他アプリの内部には触れません。
マルウェアの検知や駆除は行いません。「設定と露出の点検」を行う静的プロトタイプです。
パスコードや生体認証の設定は Web から取得できません。Unknown として残し、対処法を案内します。
OS / ブラウザの更新目安は 2026-10 時点のスナップショットです。実運用では定期的な更新が必要です。