質問: レンタルサーバーのPHPにクライアントサイドのJavascriptでアクセスし、DBにJavascriptから渡したNameとPassが一致しているか確認をとっています クライアント(JavaS) ↓ サーバー(PHP)mysql検索 ↓ クライアント このとき総当たり攻撃対策を取りたいのですが、良い方法がないでしょうか? DBにログインした日付を登録し、ログイン回数を時間間隔で指定しても意味はありませんし・・・アドバイスお願いいたします。
回答: NameとPassを照合しているのであれば、Name毎にパスワード照合失敗の回数をカウントして、一定回数を超えたらしばらくそのNameのログインをロックする「アカウントロック」が一般的です。たとえば、同じNameでのログイン失敗が連続して10回あったら、30分ログインを禁止する、などです。 あるいは、接続元のIPアドレス毎に数える方法もあります。場合によっては、こちらの方がデメリットが少ないと思います。