プラグインなしでログイン試行を制限しますか?
プラグインを使わずにWordPressログインページを保護する方法
English version: Limit login attempts without a plugin?
これに関するコメントやアドバイスはインターネット上でたくさん見つけることができます。しかし、それは本当ですか?
デフォルトでは、WordPress では、ログイン フォーム、特別な Cookie の送信、XML-RPC 呼び出し、および REST API 呼び出しを使用した無制限のログイン試行が許可されています。これにより、ブルート フォース攻撃によってパスワードを比較的簡単に破ることができます。最近では、ハッカーやボットが、あなたの管理者パスワードやサイトに登録されている他のユーザーのパスワードを推測して、WordPress サイトにログインしようと常に試みています。したがって、プラグインを使用せずにサイトを保護したい場合は、次のものが必要です。
- PHP をよく知っていること。
- それらをフックするための認証フィルターとアクション (WordPress に組み込まれている) について十分に理解してください。 「authenticate」や「wp_login_failed」などのフックから始めることをお勧めします。
- ログイン後のフォーム、XML RPC、および REST API 認証リクエストを追跡します。また、認証 Cookie (有効ですか?) も忘れないでください。
- いつ、どの IP をブロックする必要があるかを計算するために、試行されたすべてのログイン試行とすべての IP アドレスをどこかに保存します。 Transient API を使用することをお勧めします。真剣に。これが最も簡単な方法です。もちろん、これを制御することはできませんが、これを使用すると、SQL の知識がなくても何かを行うことができます。
- 特定の IP に対するログイン試行が失敗するまでの時間を計算します。
- これらのカウンターとブロックされた顧客 IP をリセットするツールまたは PHP コードを用意します。正規の顧客が偶然ブロックされたらどうなるでしょうか?
狂っているように見えますか? 2 番目の選択肢もあります。保証やサポートなしで、Google でインターネット上のブログからコード スニペットを入手することができます。
結論:プラグインを使用せずにログイン試行を制限する方法に関するアドバイスはインターネット上でたくさん見つかります。しかし、すべてのアドバイスは、stackoverflow の親切な人たちを含め、WordPress 認証アルゴリズムがどのように機能するかを正確に知らない人たちによって与えられています。しかし、とにかく、PHP コーディングのスキルと WordPress 認証メカニズムの知識がなければ、正しい方法でそれを行う選択肢はないため、サイトのセキュリティを本当に心配しないのであれば、それを行うことができます。