みなさん、こんにちは!
ブリュの公式ブログ.netにお越しいただきまして、ありがとうございます。
このサイトでは、ITについて特化したサイトを運営しています。
今回は、無限アラートだけに絞って、コードの例と対処方法について紹介します。
何度OKを押しても無限に表示されるアラートは、初めて見ると「ウイルスに感染したのかも?」と不安になします。
しかし、仕組みさえ知ってしまえば、ただのJavaScriptのアラートです。
無限アラートは何も怖いことはありません。
目次
無限アラートのコードの例
まずは無限アラートの例です。
無限アラートは、ほんの数行のJavaScriptで作成することができます。
1 2 3 4 5 6 7 |
<script> var i; for(i=1;i>0;i++) { alert("無限アラート"); } </script> |
この無限アラートについてですが、簡単に動作を説明します。
変数iを定義します。
for文は、条件を満たす限り繰り返しを行います。
iの初期値を1(i=1)とし、ループのたびにiに1を加えます(i++)。
そして、iが0より大きくなった時にループを終了します(i>0)。
ここでわかる通り、iの初期値は1であるので、何度ループしてもi>0を満たしています。
これで、無限にfor文がループされます。
for文の中にalert(“無限アラート”);を書くことで「無限アラート」というアラートが、永遠に表示されることになります。
無限アラートはブラウザの動作を停止させるものであり、ブラウザクラッシャーと呼ばれています。
また、ブラウザクラッシャーは、略してブラクラと呼ばれます。
これが、無限アラートの正体となります。
様々な無限アラート
非常に単純な無限アラートのコードですが、様々な書き方があり、どれも同じ動作を行います。
whileを使った例
whileは条件に合う限り無限に繰り返すコードです。
したがって、while文でも無限アラートを行うことができます。
1 2 3 4 5 6 |
<script> while(1) { alert("無限アラート"); } </scropt> |
whileは()内の値が真か偽かで判定します。
真なら繰り返しを実行し、偽ならループを終了します。
コンピューターにおいて、1は真、0は偽という意味を持つので、while(1)は、無条件に真となり、無限ループが発生します。
無限にループができれば書き方は何でもいい
ちょっと変なコードですが、無限ループさえ実現できれば、書き方は何でもいいです。
for文で以下のコードであれば、alertが10回表示されると終了します。
1 2 3 4 5 6 7 |
<script> var i; ]for(i=0;i<10;i++) { alert("10回のアラート"); } </script> |
しかし、以下のように6行目にi=0を書き加えます。
1 2 3 4 5 6 7 8 |
<script> var i; ]for(i=0;i<10;i++) { alert("10回のアラート"); i=0; } </script> |
これで無限アラートになります。
for文の終わりでiが0にリセットされるので、永遠にi<10が満たされます。
回りくどい変な書き方ですが、様々な方法で無限アラートを実現できます。
無限アラートの対処方法
無限アラートになったときの対処方法を紹介します。
Google Chromeの場合
Google Chromeの場合、タブを閉じることで解決できます。
下のスクリーンショットの丸で囲んだ部分をクリックしてください。
Firefoxの場合
Firefoxの場合もGoogle Chromeの時と同様、タブを閉じるボタンで強制終了できます。
またFirefoxの場合には、2回目以降のアラートの時に、「このページによる追加のダイアログ表示を抑止する」にチェックを入れることで、ページを閉じずに無限アラートを終了できます。
Edgeの場合
Edgeの場合にも、
また、Firefoxと同様、2回目以降のアラートの表示の際に「このページからのメッセージを非表示にする」にチェックを入れることで、アラートの表示を停止できます。
Internet Explorerの場合
Internet Explorerの場合には、Google Chrome、Firefox、Edgeの時とは違い、タブを閉じることはできません。
2回目のアラートの際に「このページにこれ以上のメッセージの表示を許可しない」にチェックを入れることで、無限アラートを回避できます。
私個人としては、アラート表示中にタブを閉じることができないInternet Explorerは、セキュリティの面からあまり使うことはお勧めできません。
現在Internet Explorerを利用しているなら、Google Chrome、Firefox、Edgeに乗り換えることをお勧めします。
また、後述のタスクマネージャーからの強制終了を行うほう方法なら、アラートでOKをクリックすることなく回避することができます。
タスクマネージャーで無限アラートに対処する方法
無限アラートについて、ブラウザ側で対処できなかった場合、確実にブラウザを停止させることができるのが、タスクマネージャーを利用する方法です。
ブラウザで対処できない場合もある
ブラウザ側で対処できない場合があるかもしれません。
また、無限アラートが単なるイタズラではなく本当に詐欺サイトであった場合には、ブラウザ側で変に対処するよりも、強制的にブラウザを終了させた方が安全な場合もあります。
特に、Google Chrome、Firefox、Edgeの場合には、タブを閉じることができますが、Internet Explorerの場合には、アラートで一度OKを押さなければ無限アラートを脱出できません。
詐欺サイトの場合、アラートでOKを押すとどんな動作をするかがわからないので、何としてもブラウザを強制終了させる必要があります。
そんな時は、タスクマネージャーでブラウザを強制終了することができます。
タスクマネージャーで無限アラートを脱出する方法
まずはタスクマネージャーを起動します。
Windowsの場合、左下の「ここに入力して検索」の部分に、タスクマネージャーと入力します。
タスクマネージャーと入力すると、検索結果にタスクマネージャーが表示されるので、クリックして起動します。
無限アラートが発生しているブラウザを右クリックし、「タスクの修了」をクリックします。
これで、ブラウザは強制的に終了します。
無限アラートにアクセスしてしまったとき、また、怪しいサイトにアクセスしてしまったときに、参考にしてください。
詐欺サイトに多い無限アラート
無限アラートは詐欺サイトで稀に見ます。
「ウイルスが検出されたから何かのソフトをダウンロードしろ!」みたいなサイトでは、いつまでも消えない無限アラートで不安をあおるようです。
もちろん、ウイルスが検出されたなんて嘘です。
Microsoftに偽装した、巧妙な詐欺サイトと言えます。
そんな時には、タスクマネージャーでサクッとブラウザを落としましょう。
これで解決です。
気になるなら、ブラウザを落とした後にご自身のウイルスセキュリティソフトでスキャンしてみてください。
何も検出されなければ大丈夫です。
消しても永遠に消えないアラート:様々な無限アラートのコードと仕組み。無限アラートの対処方法を解説!のまとめ
ここまで、無限アラートだけに焦点を絞って解説してきました。
永遠に表示され続けるアラートは、初めて見たときには恐怖感があるかもしれません。
しかし、ただのアラートです。
適切な方法でアラートを止めれば、何も気にする必要はありません。
以上、無限アラートについて、参考になれば幸いです。