iPhoneのSafariでポップアップブロックが効かない理由と、広告・強制リダイレクトの止め方
設定 > アプリ > Safariでポップアップブロックがオンになっているのを確認したのに、画面いっぱいのメルマガ登録枠や、動画プレーヤーをタップした瞬間に開く別タブ、突然App Storeへ飛ばされる現象が続くと、「Safariのポップアップブロックが壊れているのでは」と感じてしまいます。
実際には壊れていません。Safari標準のスイッチは20年前の古い手法を1つだけチェックする仕組みになっており、現在のWebサイトはそれをすり抜ける3つの別の方法を使っています。
Safari標準の「ポップアップブロック」が実際に判定していること
Safariのポップアップブロックが止めるのは、画面に指で触れる前のページ読み込み中に、サイトがJavaScriptのwindow.open()を勝手に呼び出して新しいウィンドウを開こうとする動作だけです。
今日iPhoneで「ポップアップが出る」と困っているケースは、ほぼ例外なくSafari標準スイッチの対象外にある次の3つのどれかです。
- ページ内のHTML/CSSオーバーレイとスクロールロック。 ルーレット枠やメルマガ催促、Cookie同意の壁は新しいブラウザウィンドウではありません。記事の上に
position: fixedで重ねられた通常のHTML<div>要素であり、ページ本体にoverflow: hiddenを設定して親指でスクロールできないように固めています。 - タップ乗っ取り(ポップアンダーやタップ連動の別タブ)。 動画配信サイトやファイル共有サイト、まとめ・リーダー系サイトでは、ページや再生ボタンの上に透明なレイヤーが重ねられていることがあります。指で画面を実際にタップしているため、Safariは「ユーザーが許可した操作」とみなして別タブを開くスクリプトを通してしまいます。
- App Storeやネイティブアプリへの強制リダイレクト。 広告スクリプトが
window.location.hrefをitms-apps://リンクに書き換えたり、隠しiframeや擬似クリックを発火させたりして、確認なしにSafariから追い出し、App Storeのゲームや通販アプリを開かせます。
iPhoneでこの3つをすべて止める方法
1. Safari標準のスイッチをオンにしておく
設定 > アプリ > Safariで、ポップアップブロックと詐欺Webサイトの警告をオンにしたままにします。これで基本的な自動ウィンドウと既知のフィッシングサイトを防げます。
2. タップ乗っ取りや偽ウイルス警告の元になる広告スクリプトを遮断する
「iPhoneがウイルスに感染しています」と脅す警告画面はiOSの通知ではなく、怪しいクリーナーアプリを買わせるために低質な広告ネットワークが配信しているただのWebページです。動画プレーヤーをタップしたときに別タブを開く透明オーバーレイも同じ広告ネットワークから配信されています。Safariコンテンツブロッカーを使えば、そうしたサードパーティ広告ドメインをスクリプトが読み込まれる前に遮断できます。
3. ページ内モーダル、スクロールロック、App Store強制転送を止める
既知の広告サーバーを止めても、サイト自身が設置したモーダルやスクリプトによるアプリ転送は残ります。BlindfoldはiPhoneとiPadのSafariに4つの専用防御を追加します。
- Safariに留まる(Stay in Safari): 信頼できないJavaScriptリダイレクト(
itms-apps://、隠しiframe、メタリフレッシュ、擬似クリック)が勝手にSafariからApp Storeやネイティブアプリへ飛ばすのを防ぎつつ、通常のリンクへの実際の指のタップはそのまま通します。 - ポップアップ自動除去とスクロールロック解除: 遅れて現れるモーダルオーバーレイを検知して除去し(サイズ表など必要なモーダルだった場合はSafariメニューの元に戻すで1タップ復元可能)、非表示になったバナーが
overflow: hiddenを残して画面が固まった際もスクロールを自動で復旧します。 - Cookie同意バナーの自動拒否: 対応するCookieバナーで「拒否」を自動タップするか、バナー自体を非表示にします。
- タップで消せる要素ピッカー: SafariのBlindfoldメニューを開いてこのページの要素を隠すをタップすれば、しつこい追従バーやプロモ枠をタップし、
-と+で選択範囲を調整して、そのサイト用の恒久ルールとして保存できます。
BlindfoldはiPhoneとiPad(iOS 26以降)に対応しており、年額$19.99プラン(7日間無料トライアル)、週額$1.99プラン(3日間無料トライアル)、または$69.99の買い切りライフタイムから選べます。ファミリー共有に対応し、アカウント登録も不要です。Blindfoldを無料で試すか、App Storeから入手してください。広告ブロック全般についてはiPhoneで広告をブロックする方法もご覧ください。