を作成するときに我々は、以下のユースケース持ってブルートフォース攻撃をログに記録:適切な方法およびユーザアカウントに
ユーザーの自己は自分のIDを検証フォームを充填することにより、ビジネスのアカウントを登録することができ、まず、姓とDOB。 IDは、ユーザーだけが事前に知っているものです。ユーザーは、すべての情報と一致するように、5回を持っている
我々は
Table 1 columns: id, attempts
Table 2 columns: id, fname, lname, dob
表1及び2は、1対多の関係を持って、我々は検証が試み保存するデータベース内のテーブルのカップルを維持することを計画しています。ユーザーがロックされる前にファーストネーム、ラストネーム、dobを5回推測しようとした場合の例を以下に示します。アプリケーションはテーブル1の試行列をチェックし、特定のIDに対して5以上の場合、その特定のIDを持つユーザーアカウントはロックされたものとして扱われます。
table 1
id attempts
1234 5
table 2
id fname lname dob
1234 john doe 19900101
1234 jane doe 19900101
1234 jason doe 19900101
1234 john dae 20010102
1234 roger smith 19960101
上記のアプローチの問題は、私たちがidによる失敗した試行だけを追跡していることです。ユーザーがIDと攻撃を変更しようとするとどうなりますか?最初の名前、最後の名前とdobを同じに保ち、IDを推測することによって?
多分私はIDを推測しようとしているユーザーの問題を解決するために、検証テーブルの設計と私のアプローチを再考する必要がありますか?あるいは、この問題を考える良い方法がありますか?
編集:これは、フロントエンドクライアントを使用したREST APIのURLです。 CaptchaはAPIを保護しないかもしれませんか?
Mine's a REST Api。私はちょうどこの情報で質問を更新しました。キャプチャはフォームの送信を妨げるので、どうすればREST APIを保護できますか? – user6123723