MODXに画像認証を追加するプラグイン
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets/plugins/AdditionalImageAuthentication
AdditionalImageAuthentication.txt
LoginScreenImage_sample.png
changelog.txt
readme.txt

readme.txt

--------------------------------------------
Additional Image Authentication - readme.txt
--------------------------------------------

[0.目次]
  1.概要
  2.動作確認環境
  3.インストール
  4.アンインストール
  5.プラグイン設定
  6.使い方
  7.備考
  8.(おまけ)画像のチョイス
  9.サンプル画像について


[1.概要]
MODX管理画面へのログインにユーザ名/パスワードに加え、画像認証を追加する拡張で
す。
画像認証の方法は事前に指定した画像がランダムに表示されるので、必要なものをすべ
て選択する事でに認証を行います。
(いわゆる猫認証やゲイツ認証と言われている認証です)

実際に利用した際のログイン画面のサンプルを「LoginScreenImage_sample.png」で同梱
しているのでこちらを参考にご覧ください。


[2.動作確認環境]
 ・MODX 1.0.10J
 ・PHP5.3.24
 ・MySQL 5.5.30
 ・文字コード UTF-8

 ※MODX 1.0.6J-r6以前は動作しません。
 ※ログイン画面をカスタマイズしている場合も(高確率で)動作しません。


[3.インストール]
  1)アーカイブファイルを解凍します。

  2)FTP(SCP)を使ってassetsフォルダ一式を同じフォルダに上書きします。
    ※画像認証用のサンプル画像をコピーするだけです

  3)管理画面でプラグインを新規作成します。
    ※「エレメント」→「エレメント管理」→「プラグイン」→「プラグインを作成」

    プラグインコードに AdditionalImageAuthentication.txt の中身をそのまま貼り
    付けて「更新」をクリックします。
    他の設定欄は自動的に設定されます。

  4)「Additional Image Authentication」というプラグインができているので、ク
    リックして編集画面を開きます。
    「設定」タブを開き必要に応じて内容を調整します。
    設定の詳細は「5.プラグイン設定」を参照してください。

    ※2)の手順が終わっていれば、認証に利用する画像一覧が下部に表示されます。


[4.アンインストール]
作成したプラグインを削除します。
assets/plugins/以下にある AdditionalImageAuthentication フォルダを削除します。


[5.プラグイン設定]
プラグインの「設定」タブに表示される設定の説明です。

  1)選択画像パス
  選択すべき画像が保存されているフォルダを指定します。
  画像は120×120固定で表示されます。
  初期設定では次のフォルダが指定されています。

    /assets/plugins/AdditionalImageAuthentication/select/

  2)非選択画像パス
  選択すべきではない画像が保存されているフォルダを指定します。
  画像は120×120固定で表示されます。
  初期設定では次のフォルダが指定されています。

    /assets/plugins/AdditionalImageAuthentication/unselect/

  画像は「選択画像パス/非選択画像パス」からランダムに選ばれます。
  また選択画像パスは必ず1つ以上選択されます。

  3)画像の表示数
  ログイン画面に表示する画像数です。
  2個以上を指定してください。
  初期設定では6個表示します。

  4)認証内容の説明
  ログイン画面に表示する画像認証の説明です。
  認証に説明が必要な場合はこちらに記述します。


[6.使い方]
インストールが終わっていれば、自動的に有効になっています。
MODX管理のログイン画面にアクセスすると画像認証も表示されているので、ユーザ名/
パスワードを入力、更に必要な画像を選択してログインしてください。


[7.補足]
・画像について
画像は120×120で表示されます(今のところ固定)。
サムネイル化は行わないのでなるべくサイズを合わせた方がわかりやすいです。
(画像をHTMLに埋め込む関係上、巨大な画像を使うとかなり重くなる可能性があります)
対応している画像は次の通りです。

  jpeg(jpg)
  png
  gif

・画像表示ルールについて
画像は「選択画像パス/非選択画像パス」から完全にランダムに選択します。
ただし「選択画像パス」からの画像は必ず1つ以上選ばれます。
この特性上、選択画像パスに画像を増やすと選択すべき画像が表示される確率が上昇
し、逆に非選択画像パスに画像を増やすと選択すべきではない画像が表示される確率
が上昇します。

・ログインできなくなった場合
プラグインの設定ミスとうでログインできなくなった場合は、いったんプラグインを
無効にすることで画像認証をなくしログインする事ができます。

manager/index.php内の「$modx->safeMode = 0;」の部分を「$modx->safeMode = 1;」
に書き換える事でセーフモードになります。
全てのプラグインが無効になるので、この状態で一度ログインし直ぐにセーフモードを
元に戻します。
ログインできたらプラグインの設定を見直してください。


・HTML書き換え
画像認証を有効にする際、ログイン画面のHTMLを書き換えています。
そのためログイン画面をカスタマイズしている場合にうまく動作しなくなる場合があり
ます。
もしカスタマイズしている画面でも利用したい場合、以下の仕様を満たせば動作すると
思います。

  1)画像認証のチェックボックスの内容をPOSTするようにする
  2)認証失敗した際のエラー表示に利用する jAlert(response) にコールバックを入れ
    て画面をリロードするようにする(画像を再表示させるため)。

     jAlert(response);
        ↓
     jAlert(response,'MODX',function(){location.href = '.';});


[8.(おまけ)画像のチョイス]
画像認証はあくまで普通の認証に補助的な効果をつかするだけなので、総当たりの
強度は求めていません。
代わりに「関係者には直ぐわかるけど、他の人にはよくわからない」ものを使うと
効果があると思います。
すぐわかれば特にメモする必要もなく(画像なのでメモしづらいですが…)、もしPC
等でメモしていたパスワード情報が漏えいしても画像の意味が分からない第三者の
侵入を少しだけブロックしてくれます。
(MODXの既定数認証に失敗すると一定時間アカウントロックをかける機能と併用する
と効果的)

少しだけブロックというのが重要で、こちらが後手に回らずに先に対応できる時間
をもつ事ができます。

というわけで次のような画像チョイスが効果あると思います。

・社員の顔写真
・好きな有名人/地域/曲/バンド等
・学生時代にクラスにいた人の苗字
・俺の嫁/私の旦那
・自分だけがわかる謎の画像

欠点としては内部犯行には弱いです。
関係者であれば画像認証に必要ないくらかの情報を持っていると思うので。


[9.サンプル画像について]
画像認証用のサンプル画像(動物の画像)は ぱくたそ(http://pakutaso.com) の写真
素材を利用しています。
本格的に利用する際は殆どの場合で別の画像に差し替えると思いますが、もし継続して
利用する場合はぱくたそサイトの利用規約に同意する必要があります。
(同意できない場合は同梱している動物画像の利用はできません)

  [ぱくたそ - サイトについて]
  http://pakutaso.com/about.html

もしくはご自身でぱくたそ公式サイトから画像をダウンロードしてご利用ください。

また、ぱくたそサイトには他にも色々な写真があるので、オリジナルの画像認証を用意
する際にも役に立つと思います。