Security Blog
Security Blog

プラグインなしでログイン試行を制限しますか?

プラグインを使わずにWordPressログインページを保護する方法


English version: Limit login attempts without a plugin?


インターネット上では、それに関するコメントやアドバイスがたくさん見つかります。しかし、それは本当でしょうか?

デフォルトでは、WordPress はログイン フォーム、特別な Cookie の送信、XML-RPC 呼び出し、REST API 呼び出しを通じて無制限のログイン試行を許可します。これにより、ブルート フォース攻撃によって比較的簡単にパスワードを破ることができます。今日では、ハッカーやボットは、管理者パスワードやサイトに登録されている他のユーザーのパスワードを推測して、WordPress サイトにログインしようと常に試みています。したがって、プラグインを使用せずにサイトを保護するには、次のものが必要です。

  1. PHPをよく理解してください。
  2. 認証フィルターとアクション(WordPress に組み込まれている)について十分に理解し、それらをフックします。「authenticate」や「wp_login_failed」などのフックから始めることをお勧めします。
  3. ログイン後のフォーム、XML RPC および REST API 認証リクエストを追跡します。認証 Cookie も忘れないでください (有効ですか?)。
  4. すべての試行をすべてのログイン試行とすべての IP アドレスとともにどこかに保存して、いつどの IP をブロックする必要があるかを計算します。Transient API を使用することをお勧めします。本当に。これが最も簡単な方法です。もちろん、これを制御することはできませんが、これを使用すると、SQL の知識がなくても何かを実行できます。
  5. 特定の IP に対する失敗したログイン試行間の時間を計算します。
  6. これらのカウンターとブロックされた顧客 IP をリセットするツールまたは PHP コードがあります。正当な顧客が偶然ブロックされた場合はどうなりますか?

おかしいですね? 2 番目の選択肢があります。Google で検索して、インターネット上のブログから保証やサポートなしでコード スニペットをいくつか取得することができます。

結論:プラグインなしでログイン試行を制限する方法についてのアドバイスは、インターネット上にたくさんあります。しかし、すべてのアドバイスは、WordPress 認証アルゴリズムがどのように機能するかを正確に知らない人々によって提供されています。これには、stackoverflow の親切な人々も含まれます。しかし、とにかく、PHP コーディングのスキルと WordPress 認証メカニズムの知識がなければ、正しい方法でこれを行う方法はないため、サイトのセキュリティについて本当に心配していない場合は、それを行うことができます。

あなたのサイトに何かおかしなことがあったら、誰に電話しますか?


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.