最近、モーダルウィンドウを使った広告が多くて迷惑してる。ふと、悪用を防ぐためにポップアップはブロックされてるのにモーダルウィンドウがブロックされていないのはどうしてだろうかと思ったので、 #ChatGPT に尋ねてみた。
私:ブラウザにポップアップブロックはあるのにモーダルウィンドウブロックがないのはどうしてですか?
ChatCPT:とても鋭い質問ですね。
結論から言うと:
モーダルウィンドウ(=Webページ内で表示される重ね表示のダイアログ)は、JavaScriptやHTML/CSSでページ内に構築された要素であり、ポップアップウィンドウのように「別ウィンドウ」や「ブラウザの機能」として扱われないため、ブラウザ側では基本的にブロックできないのです。
詳しい理由は以下の通りです:
1. ポップアップは「ウィンドウ」だからブラウザが制御できる
- ポップアップ(
window.open()
などで開く別ウィンドウや新しいタブ)は、ブラウザの外部に新しいウィンドウを生成する動作です。 - これはユーザー体験を阻害したり、広告に悪用されるため、ブラウザがこれを検出して制御できます。
- 特にユーザーの明示的なアクション(クリックなど)なしに開くポップアップは、ほとんどのブラウザでブロック対象です。
2. モーダルウィンドウは「HTMLの一部」だからブロック対象外
- 一方、モーダルウィンドウ(たとえば
<dialog>
タグ、あるいはdiv
要素で作られるUI)は、Webページの中にあるHTML/CSS/JSの一部です。 - これは「ただのページ内UI」でしかなく、ページの開発者がどのようにUIを構築しようが、基本的にはブラウザは干渉しないという設計思想があります。
- ブラウザがこれを「ブロック」し始めると、ページの機能そのものが壊れる可能性が高いため、標準ではそういったブロック機能は存在しません。
補足:モーダルが迷惑な場合はどうすれば?
- ブラウザ拡張機能(アドブロッカーやカスタムCSSブロッカー)を使うと、特定のサイトのモーダル表示を抑制できることがあります。
- たとえば、
uBlock Origin
などの拡張機能では、CSSセレクタでモーダル要素を非表示にできます。
必要であれば、よく使われるモーダルのブロック方法もご紹介できます。ご希望ありますか?
コメント
さらに尋ねた。
私:ポップアップを使った悪用と同じようにモーダルウィンドウを使って悪用することはできますか?
#ChatGPT :はい、**モーダルウィンドウも悪用可能であり、実際にフィッシングやユーザー妨害などに使われるケースが存在します**。ただし、ポップアップとは悪用方法やリスクの種類が少し異なります。
---
### 🔒 モーダルウィンドウの悪用例
#### 1. **フィッシング詐欺**
* ログイン画面やシステム警告のような見た目のモーダルを表示し、ユーザーに偽の情報を入力させる。
* 例:本物のGoogleログイン画面に似せたモーダルを重ねて表示し、入力内容を盗む。
#### 2. **閉じられない・しつこい広告**
* 画面全体を覆うようなモーダルを表示し、閉じるボタンが見つけにくかったり、押しても閉じないようにする。
* ユーザーが混乱し、意図しないリンクをクリックするよう誘導する。
#### 3. **ダークパターンの実装**
* モーダルに表示される文言を巧みにデザインし、ユーザーに不利な選択を「OK」と思わせて選ばせる。
* 例:「このサイトを使い続けるには“同意”が必要」といった表示で、本来オプトアウトできる広告トラッキングに無理やり同意させる。
#### 4. **ブラウザ偽装・OS偽装**
* 「あなたのデバイスがウイルスに感染しています!」などと書かれたモーダルを表示し、公式の警告のように見せかけて有料ソフトを買わせる。
---
### 🔍 なぜモーダルはブロックされにくいのか(再確認)
* **見た目だけで判断できない**:ページの一部として表示されるため、本物のUIと区別がつきにくい。
* **ページ固有のスクリプト**:モーダルは多様な手法で作られるため、決まったパターンで検出・ブロックするのが難しい。
---
### 🛡️ 対策は?
1. **怪しいサイトでは情報を入力しない**。
2. **ブラウザ拡張(uBlock Originなど)でモーダルを消す**。
3. **ブラウザを最新に保つ**(セキュリティ警告機能が強化されている)。
4. **本物の警告と偽物を見分ける**(URLや証明書を見る癖をつける)。
---
興味があれば、実際の悪用例のスクリーンショットや、見分けるポイントも紹介できますよ。見てみますか?