管理パネルはブルートフォース攻撃に対して脆弱です。 ログインページ(/ admin)は、ユーザーが存在する場合はコードを返し、ユーザーが存在しない場合は別のコードを返します。自動システムがこれを試行するのを妨げる障壁はありません。 私はこのアイデアをあまり楽しんでいませんが、これをすぐに修正する最も簡単な方法はキャプチャを挿入することだと思います。 別の代替手段(どれだけ効果的かわからない)は、1日あたりの同じIPからの試行回数を制限することです。
パスワードを忘れた場合のページも脆弱です...パスワードを忘れた場合のリンクをリクエストすると、システムは電子メールが登録されているかどうかを確認します。 「これが登録済みの電子メールの場合は、回復リンクが送信されています。リンクが届かない場合は、サイト管理者に連絡してください」などのより一般的なメッセージに変更することをお勧めします。 ..しかし、それで十分かどうかはよくわかりません。 たぶん、より専門知識のある人がこれを調べたいと思うかもしれません。
Incorrect username or password.
のような単一のエラーメッセージを使用するだけです。これらの変更(パスワード文字列の変更を忘れた場合を含む)により、どちらの形式でもユーザー名を推測できなくなります。
IPによるアクセスを制限するつもりはありませんが、オプションとしてキャプチャを追加することは悪い考えではありません。
私はキャプチャオプションが本当に好きではありませんが、それを追加する必要がある場合、少なくとも数回の試行の失敗(3など)の後でのみアクティブにすることができますか?
ログイン試行間の遅延(できれば、試行ごとに特定の制限まで指数関数的に増加することが望ましい)は、ブルートフォース攻撃を効果的にブロックします。 遅延と制限はパラメータとして設定できます。
パスワードを忘れた場合の機能は、ログインプラグインのベータ版で変更されました。 今はメールアドレスだけを取ります。
また、 https://github.com/getgrav/grav-plugin-login/commit/3e7c20fd66639123cfb2894d9298d4ccfb861af9で、メールが存在するかどうかに関係なく同じメッセージを印刷するように編集しました
失敗した試行のログ記録は、fail2banなどにも適しています:)
特定の期間に誤ったログインの試行回数を制限する方法はどうですか?
ログインプラグインの構成にセキュリティセクションがあり、それを制御できます: https ://github.com/getgrav/grav-plugin-login/commit/590f188189c8453afb5992e7ec385795336ee711
キャプチャのオプションがあれば、それでもいいでしょう。 また、洪水防御はまったく機能していないようです。
Gravは、セキュリティ機能が有効になっている場合でも、パスワードの入力を停止することはありません。 また、ログイン試行間の時間を延長することもありません。
私は何か間違ったことをしていますか、それともプラグインが単に壊れていますか?
実際には、ログインプラグインのブルートフォース保護は管理者には適用されません(ここに反対のことを書くのは悪いです)。 Adminでは、Webサーバーレベルの保護(Apacheのhtaccess / htpasswdなど)を追加するオプションがあり、この機能がAdminにも適用されるまで、IP範囲で制限することもできます。
分かりました。 はい、それまではそれが賢明なことだと思います。
現在、ユーザーが少なくとも管理ページを保護する必要があるという警告を受け取らない場合、これは明白なセキュリティ上の欠陥のように思われます。
また、すでに提案したように、ダッシュボードでのログイン試行の失敗に対する警告は非常に便利です。
これに関する更新をすぐに期待しています:)
編集:.htaccessソリューションは、管理ページのすべてのcssをほぼ強制終了します。 多かれ少なかれそれを使用できなくします。
現在、管理者のセキュリティを向上させるためにできる最善の方法は、次のように名前を変更して管理者ページを非表示にすることです。
https://learn.getgrav.org/admin-panel/faq#custom -admin-url
管理者のログイン保護がすぐに来ることを本当に望んでいます。これにより、企業サイトでのログインができなくなります。
実際には、ログインプラグインのブルートフォース保護は管理者には適用されません(ここに反対のことを書くのは悪いです)。 Adminでは、Webサーバーレベルの保護(Apacheのhtaccess / htpasswdなど)を追加するオプションがあり、この機能がAdminにも適用されるまで、IP範囲で制限することもできます。
ブルートフォース保護が私の管理者ログインページで機能しているようです。 ドキュメントにもあります。 このコメントは古くなっていますか、それとも私は誤解していますか?
また、Gravをfail2banで動作させる方法を知っている人はいますか?
私の代替ソリューションは、すべてのサーバー/ホスティングへのFTPアクセスがある場合にのみ機能します。
.htaccessを編集して、特定のIPアドレスのみが/admin/フォルダーを読み取れるようにすることができます。 他のIP(および後続のボット)は、フォルダーの内容をロードできません。
以前はこの方法を使用してすべてを禁止していましたが、自分のIPアドレス...ビルドWebサイトが機能しているかどうかを確認してから起動しました。 これは、ローカルWebサーバーを実行する前のことです。 恐らくこれは、恐れていて自分のIPだけから完全に制御したい少数のユーザーにとってはまだ機能します。
最も参考になるコメント
ログイン試行間の遅延(できれば、試行ごとに特定の制限まで指数関数的に増加することが望ましい)は、ブルートフォース攻撃を効果的にブロックします。 遅延と制限はパラメータとして設定できます。