All Articles

詐欺サイトから当選のお知らせが届いたので、コードを解析してみた!

趣旨

誰でも分かるように詐欺サイトの作りを簡単に説明します。特に多くの人が焦ってしまうカウントダウンの部分を紹介します。

この記事を読むことによって、詐欺サイトに出くわしたとき必要以上に恐れることが無くなります

経緯

いつものように、はてブ(ニュースサイト)で人気の記事を物色していました。

すると、突然こんなサイトに飛ばされました。

cf57fee1587c2641d60a140808ae172a

よくある詐欺サイトです。たまたま何かの抽選に当選したかのようなことを書いてあります。GoogleからなのにiPhoneくれるとか、この時点で可笑しいです笑。

調べる

今回はこのサイトのページのコードを見て、どんな仕組みなのか調べようと思います。

どうやってコードを見るの?と思う方もいるかもしれません。実は簡単です。開いているページの空きスペースで、右クリックして「ページのソースを表示」を選択するだけでみれます。

開いてみるとこんな感じです。

b57cae96ca4379048b8515aef73d51f7

細かい文字が大量に表示されます。

今回はこの中から、一番サイト訪問者を不安にさせるカウントダウンの処理をみていきます。

ac4ad4b3e8cfb86dc71ed50d662019a4

この手のサイトには必ずと言っていいほど、カウントダウンが表示されます。あと何秒でバッテリーが破損するだとか、ウイルスに感染するだとか言って、サイト訪問者を脅します。今回の場合は、カウントダウンが終了すると当選した機会を逃すらしいです笑。

該当コードをくり抜いてみました。

[highlight_javascript]setInterval(‘countdown()’, 1000);
function countdown() {
var mins = parseInt(document.getElementById(“mins”).innerHTML);
var secs = parseInt(document.getElementById(“hsecs”).innerHTML);
if(mins != 0 && secs == 0) {
nmins = mins – 1;
nsecs = 59;
} else if(mins != 0 || secs != 0) {
nmins = mins;
nsecs = secs – 1;
} else if(mins == 0 && secs == 0) {
nmins = mins;
nsecs = secs;
}
document.getElementById(“mins”).innerHTML = nmins;
document.getElementById(“hsecs”).innerHTML = nsecs;
if(nsecs < 10) nsecs = “0” + nsecs; document.getElementById(“hsecs”).innerHTML = nsecs; }[/highlight_javascript]

カウントダウンの表示の処理の部分はここだけです。
このコード何をやっているのか。

簡単です。4つに分解して説明します。

①まず最初に1000ミリ秒ごとに下に書かれているコードの処理を行うとしています。
[highlight_javascript]setInterval(‘countdown()’, 1000);
function countdown() {[/highlight_javascript]
②その直後には今、表示しているカウントダウンの時間を確認しています。
[highlight_javascript]var mins = parseInt(document.getElementById(“mins”).innerHTML);
var secs = parseInt(document.getElementById(“hsecs”).innerHTML);[/highlight_javascript]
③真ん中ら辺では、カウントダウンの時間から1秒引く計算をしています。
[highlight_javascript]var secs = parseInt(document.getElementById(“hsecs”).innerHTML);
if(mins != 0 && secs == 0) {
nmins = mins – 1;
nsecs = 59;
} else if(mins != 0 || secs != 0) {
nmins = mins;
nsecs = secs – 1;
} else if(mins == 0 && secs == 0) {
nmins = mins;
nsecs = secs;
}[/highlight_javascript]
④そして最後にはカウントダウンの表示を更新しています。
[highlight_javascript]document.getElementById(“mins”).innerHTML = nmins;
document.getElementById(“hsecs”).innerHTML = nsecs;
if(nsecs < 10) nsecs = “0” + nsecs; document.getElementById(“hsecs”).innerHTML = nsecs; }[/highlight_javascript]
これだけです。

結果

もう一度まとめると、こんな感じです。

  1. 1秒ごとに処理すると宣言
  2. 今の残り時間を確認
  3. 今の残り時間から1秒引く計算
  4. 今の残り時間を更新

この処理の中には一切、カウントダウンが終了したら何か起こるだとかは書いてありません。このサイトの場合は、カウントダウンが終了したらチャンスを逃す処理をしなくてはいけないはずです。しかしそんなものはありません。

これらのサイトにあるカウントダウンは、ただのタイマーです。何も恐れる必要はありません。

もし詐欺サイトに出くわしてしまったら、落ち着いてゆっくりとタブを閉じましょう。タブの閉じ方は…他で調べてください。

この記事の結論として、焦る必要はない。カウントダウンが終了しても害は無いってことです。

以上です。