ログインページの変更は可能だと思います。
ログインフォームは任意で作成が可能で、ユーザー名とパスワードの受け取りモジュールに
wp_signon
関数を利用すればログイン機能を実装することができます。
ログインフォームからfunctions.phpなどにログインルーチンを組み込めば動作可能です。
関数利用せずログインフォームを機能させる場合にはwp-login.phpに投げることになるので
変更はむつかしいですが安全のために露出させないという手もあるかと思います。
外部からのアクセスでは表示させず、内部プロセスからアクセスした場合(アクセス元が自分のIPである場合)以外は
動作しないなどの手段です。
<?php if($_SERVER["REMOTE_ADDR"]!==gethostbyname(gethostname())){ exit; } ?>
この一文を先頭に入れるだけで自分(サーバー)のIPからではないアクセスの場合は即時終了します。
使い方としては一旦サーバー側でログイン情報を受け取り、それが安全であるという確認作業プログラムを経て
内部からあらためてログインフォームに投げるという形などで使えるかと思います。
ただ既存のテーマや機能に加工をしてもバージョンアップなどでかき消されることがある可能性があるので注意が必要かと思います。
セキュリティに問題が発生するのは、ユーザー名とパスワードが暗号化されていない状態でインターネットを
流れるところにあると思います。
目的地にたどりつくまでにデータはいくつものサーバーを経由するのですがその途中で暗号化されていない内容は取得して
内容を確認することが可能な技術もあります。
ログインのアドレスが変わっても、変わったアドレスに対して何度もログインを試みれば結果同じなので
アドレス名の変更だけで安全性の確保というのはあまり意味がないと思います。
「USER=AAA PASS=BBB 対象サーバー=CCC」 といったデータがまとまって中継サーバーで取得されてしまうと安全とはいえないということだと思いますので
それらを暗号化または、分散して無意味に見えるものに変えるという手があると思います。
2つのサイトでそれぞれ違うキーをわたしてログインする、ファイルのハッシュコードをログインにつかう
ひみつの設問、画像の組み合わせなど、中継サーバーに取られても問題のない平文もしくは暗号化だと思います。
暗号化が現実的でないという場合は、途中の経路で読まれてもログインの方法を解明するに至らないデータという
つくりかたであれば概念的に「セキュアな」といえると思います。
ログインは同時に一つだけ、ログインしたら告知する、記録を参照するなど手法は多岐にわたるかと思います。
あとは回数アタックを許さない、3回でロックなどの機能で機械作業からの危機回避には使えると思います。
暗号化以外となるとアイデア次第だと思いますので、メールでZIPファイルとパスワードファイルを別々に送るような
地味な対策から複雑で高度なもの、物理的なものまでサーバーとユーザーだけが正解を形成できる取り組みはあるかと思いますが
実質小さいサイトのデータまで収集できる容量のある設備はそうあるものではないですし、一番多い情報漏洩は
人為的なものということもあり、用途に合わせて作業や手間、料金といったコストを見積もるのも手立ての一つかと思います。
SSLで暗号化されたログインで高度なパスワード紹介機能とIDカードを利用したところで通信内容がSSLで保護されていなければ
漏洩もありえますし、サーバー側がそれをログインとは関係なく漏洩してしまうリスク、絵日記をかくだけなのにセキュリティコストに
月数万円をかけるなどのバランシングなど、それぞれに適があると思いますので「あくまで安全に」を実現するには暗号化が一番かと思います。
SSL利用にコストはかかりますが、サーバー選択時にPLESKが利用可能なところを選んでプラグインに「LET’S ENCRYPT」導入することで
無料のSSLを利用できることや、レンタルサーバーに契約単位でついてくる独自SSL(警告は出る)などを選択するという手段も対策の一つかと思います。
つたないお話ですがなにかの参考になられましたら幸いです。
トピック投稿者
hgkuk
(@hagakureuk)
msioさん、munyaguさん、
おふたかたとも、詳細かつ具体的な解決法をお教えいただき、本当にありがとうございます。
私の限られたIT知識では、どの方法が最適か、またどこまでできるか、わかりませんが、頂いたアドバイスをもとに、この週末さっそく取り組んでみます。
トピック投稿者
hgkuk
(@hagakureuk)
ひと通り関連情報に眼を通してみて、関数変更もBasic認証も、私にはちょっと手ごわそうだったので、結局プラグインを導入しました。
munyaguさんが紹介されていたものの中から、SiteGuard WP Pluginをインストールしました。有効化するだけでログインページ変更と画像認証など基本機能が追加されるので、あっという間でした。
Firefoxからログインすると、あいかわらず”This connection is not secure”の警告がでますが、これは “https://”のURLにしない限り表示されるようです。
Firefoxのヘルプページによると、”https://”バージョンがない場合は、「ユニークなパスワードにするか、他のサイトで使用していないパスワードを使用すべし」とあり、これはすでに実行しているので、今回プラグインを導入したことで、安全性が向上したかと思います。しばらくこれで行こうと思います。
大変勉強になりました。
詳しいアドバイスを下さったおふたりに、再度お礼申し上げます。