web-dev-qa-db-ja.com

Djangoでブルートフォースログイン攻撃を抑制する

この種の攻撃からDjangoアプリケーションを保護するための一般的に受け入れられている戦術はありますか?

28
Joe Mornin

Django-axes は、失敗したログイン試行を検出するための既存のアプリです。より一般的な Django-ratelimit もあります。

24
Mark Lavin

あなたはできる:

  • 失敗したログイン試行を追跡し、3回の試行後に攻撃者をブロックします。
  • ブロックしたくない場合は、ログに記録してCAPTCHAを提示すると、今後の試行でより困難になります。
  • 試行が失敗するたびに、ログイン試行間の時間を増やすこともできます。たとえば、10秒、30秒、1分、5分などです。これは、攻撃者の楽しみをすぐに台無しにします。
  • もちろん、攻撃者が推測し続ける安全なパスワードを選択してください。
5
Simeon Visser

Django-axesDjango-defenderのような多くのライブラリが利用可能です)、Django-ratelimit、言及されたこれらのライブラリはすべて同じことをします(それらの間にはいくつかの違いがあります)。ニーズに最適なものをお選びいただけます。

DRFを使用している場合、DRFにはすでにスロットル機能が組み込まれているため、追加のライブラリ(軸、レート制限など)は必要ありません。

この質問を確認できます: **​​ブルートフォース攻撃を防ぐ方法Django Rest + Using Django Rest Throttling **

2
JustChill

私は Django-defender が好きです。これは、失敗したログイン試行、ブロックされたユーザー、IPを格納するためのバックエンドとしてredisを備えたDjango-axesフォークとして開始されるため、Django-axesよりもはるかに高速です。

2
Karimov Dmitriy