当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

サガワドラゴン大量フォーム投稿対策:cakephpでGoogle reCaptchaを使う。

サガワドラゴン大量フォーム投稿対策:cakephpでGoogle reCaptchaを使う。


お客様でサガワドランゴン名乗るフォーム登録で多数の迷惑メールを短時間で700通弱送るトラブルがあった。この問題のおかげでGoogle G Suite のアカウントが通数制限で送受信できなくなる問題が発生しフォームが使えなくなった。G SuiteやGmailは一日の通数制限があるのでスパマーが大量に送るとアカウントが一時的に送受信が凍結してしまう。但し一日立つと復活します。Gのメールフィルターはあまりよくない。それは、一度受信した上でフィルターをかけるため通数制限の問題に対して解決にならないのだ。

結局cakephpのバージョンが古くて2系であったためCaptchaプラグインが使えなくなっているものや、現代のSpam事情を考慮すると実装上の課題があるものが多いため、改めてGoogleのCaptchaを使うことにした。おそらく下手なcakephpプラグインを使うよりも実装は簡単で効果は高い。本音はWORDPRESSでフォームを作っていれば簡単にGoogle Captcha使えるのにね!と思います。まあ、フレームワークで作る場合は人それぞれの個性が出るので作り方のトレースをある程度行った上で導入が必要になる。 今回の環境はcakephpでしたがおそらくcakephpのどのバージョンでも使えると思う。まあ、参考にしてみてください。GoogleのreCaptchaを使うには予めユーザ登録とドメイン登録が必要。サイトキーやシークレットキーもここで取得します。やり方は過去記事のここを参考にしてみてください.Google reCaptcha

ヘッダに設置

フォームに設置

コントローラに設置

次のコードを適宜書き換えてフォームを表示する部分の処理において内容チェック処理を行う部分もしくはSubmitする直前に挿入してみてください。

特定のヘッダ項目で比較チェック

※メールのヘッダ項目やBODYの内容で特徴あるパターンでトラップさせる。サンクスメールの送信前や確認表示の前に入っているバッファで 文字列比較すると良いと思います。

文字列はUTF-8でエンコーディングという前提です。項目は攻撃を仕掛けられたサイト毎に異なるため、事前に届いている攻撃メールを調べて共通項を調べてみてください。意外とどのメールにも共通した文字列が潜んでいるものです。そこを文字列含む関数比較(preg_match)を使って検出すると良いです。後は問題あるものは適当なページへ飛ばす事です。

タグ: , , , , , ,

WORDPRESS ブルートフォースアタックから守る


ブルートフォースアタックって何!?と思う方もいるかと思いますがこの攻撃が一番緩くて多い攻撃なのです。おそらくこの攻撃を受けていないサイトは無いのではないでしょうか?
ログインの機能を持ったサイトなら必ず受けているはずです。WORDPRESSの場合もちろんこの攻撃は受けています。それは当然のことで世界で最も使われているCMSだから、攻撃する方も事前に調査しています。

ログインページはURIパスがどうなっているか?あるいはソースコードを呼んで弱点は無いのか。など当然考えていると思います。

この攻撃をあまり軽んじていると痛い目に会います。その理由はDoS攻撃に使われていることもあるからです。つまりこのようになるからです。

WORDPRESSの場合はこのようにログインやxmlrpc.phpに対しDoS攻撃を相乗りして相乗的に仕掛けてくるものもあり対策をしたのに、いまいち効果が出ていないケースが有ったりします。その場合はDoS攻撃を相乗りで仕掛けているケースを疑って見ましょう。 中にはパスワードを複雑にするとかadminユーザをなくすという方法を目にしますが、DoS攻撃には効果はありません。

この場合の対策はどうしたら良いのでしょうか?

  • wp-login.phpのURLパスファイル名を変更する。
  • /wp-admin/で直接ログインへ飛ばさないようにする
  • 管理画面に入れるユーザのIPを制限する
  • xmlrpc.phpを実行できるユーザのIPを制限する

サーバの知識を持っている方なら上記の方法を処置するのは簡単だと思います。この処理をすることで意外にも多くのサイトのレスポンス反応が良くなるケースが多いです。遅いのがまさか緩いDoS攻撃を受けているなんて気づかないものです。


もしやり方がわからない場合は、別途弊社までご相談ください。

タグ: , , ,

サイトの不正送信をブロックするGoogleの「reCaptcha」


皆様のサイトでお問い合わせやコンタクトフォームを設置してる方非常に多いと思います。

WORDPRESSなんかだと「contact form7」というコンタクトフォームを生成するプラグインがあり私も愛用しています。

でも大体、不正送信してくる輩がいてたまに集中攻撃してきます。そこで一般的にはCaptcha「きゃぷっちゃ」を使用して読みにくい画像文字を表示して、それを入力させたり、足し算、引き算させたりするのが一般的です。残念ながら高度なアタックではこれすらも破ってしまいます。 WORDPRESSだと上記のサブプラグインで「Really Simple CAPTCHA」というのがありますがやはりブロックは不十分です。

そこで、ご紹介したいのがGoogleのreCAPTCHAです。静的ホームページ、CMS何でもOKです。

たまにいろいろなサイトでRobots認証や画像を複数枚表示してこの中でレストランの画像だけをクリックしなさいというような認証を行っている仕組みのものです。

Googleの登録はちょっとだけ戸惑いますがサイトへの設置は簡単です。サイトのドメイン単位で登録を行い設置します。

GoogleのreCAPTCHA登録ページ
https://www.google.com/recaptcha/intro/invisible.html

登録すると以下のようなドメインごとのcaptcha管理ができるようになります。

是非お試しください。効果は抜群です。

WORDPRESSのプラグインでContact Form7にも装備できるようになっています。

タグ: , , ,