プロジェクトの背景:
SpringMVC + Mybatis + MySql データベース (javaWeb プロジェクト開発)
関連モジュール: ログイン、個人情報変更、注文詳細クエリ
関連する脆弱性の紹介:
1. ログイン認証コード: ログイン認証 コードは次のとおりです。検証コードがフロントデスクでのみ検証され、バックグラウンドでは検証されない場合、最初に検証コードが検証された後、ブルートフォースのために検証コードをバイパスするツールが使用される可能性があります。クラッキング;
2. インターセプター: ログイン後、/user または /admin を使用して個人情報操作のインターフェース名をインターセプトする必要があります。ユーザーがログインしていない場合は、自動的にログイン ページにジャンプします。 3. 個人情報の変更: この方法で個人情報を変更する場合、パスワードを必要としないインターフェースの場合は、ユーザーの ID などの情報をセッションに保存する必要があります。アカウント情報を変更するときは、ユーザーの ID を一意の識別子として直接渡さないように注意してください。重要な情報を提供する場合、現在ログインしているユーザーの情報をセッションから取得して、不正なアクセスを防ぐことができます。アカウント 3000001 のユーザーは、ログイン後にアカウント 3000002 のユーザーの個人情報を変更できません。
4. 注文詳細インターフェイス: ユーザーの注文詳細をクエリする場合、/user がインターフェース名に が追加され、ログインしていないユーザーが傍受されるため、他のユーザーがログイン後に自分以外の注文の詳細を照会できる可能性があります。この場合、注文の詳細を照会する前に、その注文が現在ログインしているユーザーの個人的な注文であることを確認する必要があります。つまり、セッション内の ID が注文の作成者の ID と一致していることを確認する必要があります。情報漏洩を防ぐ
(注: 上記の脆弱性は実際に発生したものであり、他の初心者がこれを警告として受け止め、開発中に発生した問題についてより多くの人に伝えられることを願って投稿しています)