以前「WordPressサイトを徹底的に秘匿化する」という記事で、WordPress建てのサイトを秘匿化する方法を取り上げたのだが、あれをサイト構築時に毎度実施するとなるととても労力が必要であった。そこで、もっとお手軽にサイトを秘匿化するためのツールとしてプラグイン化してみた。

 その名も「WP Ignitor(WPイグナイタ)」である。

 昨年末に公式プラグインの審査が通って、現在はすでに公開中である。
 UIの日本語化を行ったバージョン1.0.2を先ほどリリースしたので、この機に大々的にお披露目しておこうかと思った次第だ。

WP Ignitorでできること

 プラグインの主な機能は下記の通りだ。

1. WordPressのインストールディレクトリを移動する

 WordPressをインストールした後に、プラグインやテーマ、アップロードした画像ファイル等の配置をそのまま維持してサブディレクトリ内にWordPressのファイル群を移動できる。移動後はデータベースに保存されているインストールパスの情報も更新して、必要であれば.htaccessの更新も行う。管理画面からボタン一つでインストールディレクトリを移動できるのは、かなり便利な機能なのではないかと。

2. wp-config.phpを移動/更新する

 wp-config.phpはWordPressサイトの心臓部とも云える最も重要なファイルでありながら、初期構成ではインストールパス直下に配置されていて、脆弱な状態だ。WPイグナイタではこのファイルをインストールパスの1階層上のディレクトリに移動することができる。また、WordPressには様々な機能を制御できるオプション定数が実装されていて、その定数を設定するだけで強力なカスタイズができる。しかし、それを設定するためには直接wp-config.phpに追記する必要があり、サイト運用時には何気に面倒だ。このプラグインでは管理画面から各種オプションのON/OFFを切り替えて、その情報をwp-config.phpに書き込んでくれるので、wp-config.phpの保守がだいぶ簡単になる。

3. .htaccessのメンテナンス

 .htaccessの保守も、前述のwp-config.phpと同様に面倒である。WordPressではパーマリンク設定ぐらいしか.htaccessに書き込まれないため、それ以外のルーティングなどを行いたい場合には直接.htaccessを編集しなければならない。しかも、.htaccessはApacheサーバ用の設定書式であり独特な構文構造を持つので、それを理解できていないと高度な設定を行うことが難しい。WPイグナイタはそれらの知識がなくても.htaccessを自分好みにカスタマイズすることができ、カスタム内容はそのまま保存されるため、直接.htaccessファイルを編集する必要がなくなるのだ。

4. WordPressによって出力されるHTMLのクリーンアップ

 WordPressは汎用的なCMSなので世界中の誰に対しても有害ではないHTMLを出力しますが、私たち個々のWebサイトにとってその出力はしばしば冗長である。その冗長的な出力の取捨選択について、私たちは大抵テーマ側のfunctions.phpなどで対応していると思うが、それらは面倒でとても無駄なコストであるはずだ。WPイグナイタでは、それらの出力を管理画面から簡単にON/OFFができるようになっている。同時にHTML出力をプレビューできるので、出力がどのように切り替わったをすぐに確認できるのだ。

5. WP REST APIのルートごとの動作を制御する

 WordPressのREST APIはとても有益な機能だが、正しい制御を行わないとコンテンツやユーザ情報の外部漏洩に繋がりかねない。また、かといってよくありがちなREST APIのルートを全て閉じてしまうという方法は、サイトの利便性や可用性を低下させてしまう。本来であれば、各RESTルートごとにアクセス制限を設けるべきであろう。WPイグナイタでは管理画面からその制御を行うことができる。もし将来的に新たに導入したプラグイン等でRESTルートが拡張された場合でも、そのルートの制御もWPイグナイタから行うことができるのだ。

6. 新しいログインページのURLを設定する

 WordPressのログインページであるwp-login.phpをアクセス制限もないまま使い続けるのは危険でしかない。なぜなら、古典的にWordPressサイトへの攻撃の窓口がwp-login.phpだからだ。WordPressでサイトを安全に運営するうえで、ログインページのURLを変更することは非常に大きなメリットをもたらすだろう。WPイグナイタでは管理画面から新しいログインページのパスを設定して.htaccessを更新するだけで、新しいログインページが有効になる。さらに、元々のログインURLであったwp-login.phpへのアクセスをクローズしておくことで、より万全となるだろう。

7. ログインページへのアクセス制限

 WordPressサイトではログインできるユーザの数を絞ることは、セキュリティ的に大切だ。購読ユーザを登録可能にするような会員系サイトでない限りは、ログインページにアクセス制限を設けることをお勧めしたい。WPイグナイタではログインページについて接続を許可するIPアドレスを設定できる。この設定は.htaccessに依存せず、またWPイグナイタで新たに設定したログインページでも同じように動作する。

──以上が、現バージョンの実装機能の概要である。

 私がWordPress案件のお仕事で毎度テーマや独自プラグインを作って対応していた処理をプラグインとして機能化してあるので、自分的にはかなり重宝するプラグインになっている。
 今後も有用な機能があれば、どんどん追加して行こうと思っている。このプラグインがあれば、WordPressの導入初期の準備はほぼ全て完了!みたいに横着……もとい楽ができるようにしたいのだw

 もし気に入った機能があったら、是非使ってみてくださいな。

WP Ignitor ─ WordPress plugin | WordPress.org