AEM プロファイルの更新でのサーバーサイド検証が不十分です

Adobe Experience Manager(AEM)では、オーサーCMSを使用すると、堅牢なサーバーサイド検証を実施せずに、タッチ UI を通じてプロファイルを更新できます。 この問題は、AEMのデフォルトの許容検証モデルに起因します。このモデルは、プロファイルフィールドに対して厳密なチェックを実施しません。 この問題を解決するには、Sling PostProcessor またはカスタムサーブレットロジックを使用して、サーバーサイド検証を実装します。

説明 description

環境

Adobe Experience Manager(AEM), v6.5

問題/症状

  • 脆弱性の評価と侵入テスト (VAPT)の際に、サーバーサイドの検証が不十分であることが特定されました。 症状は次のとおりです。

    • AEM オーサーCMSは、タッチ UI を使用したプロファイルの更新中に、無効なメール入力を受け入れます。
    • クライアントサイドの検証は存在しますが、サーバーサイドのチェックが見つからず、無効なデータを含む変更されたリクエストがプロファイルフィールドを更新できます。
  • 脆弱性は、脆弱性の評価と侵入テスト(VAPT)の演習で特定されました。

再現手順:

  1. AEM バックエンドにログインし、「プロファイルを編集」ページに移動します。
  2. メールフィールドのクライアントサイド検証があることを確認します。
  3. 有効なメールアドレスを入力し、変更を保存しながら、Burp Suite を使用してリクエストをインターセプトします。
  4. メールパラメーターの値を fake などの無効な値に変更します。
  5. 変更したリクエストを転送し、プロファイルが有効なメールなしで正常に保存されたことを確認します。

解決策 resolution

デフォルトでは、AEMの入力検証モデルは意図的に柔軟になっています。 リポジトリーは許可的なアプローチを採用し、メール属性を含むほとんどのフィールドに最小限の制限が適用されます。 標準では、通常、プロファイルデータフィールドに対して厳密な検証は行われません。必要に応じてコンテンツの整合性を適用するかどうかは、アプリケーションまたは消費者の責任です。

サーバーサイドの堅牢な入力検証(メールフィールドなど)を導入するには、次のオプションを考慮します。

  1. Sling PostProcessor インターフェイス ​ を実装して、AEM オーサーでの標準コンテンツ更新時に Sling Post サーブレットが管理する入力を検証します。
  2. プロファイルの更新が Sling Post サーブレット外で処理される場合の検証ロジックを専用サーブレットに追加します。

これにより、他のユースケースに対する柔軟性を維持しながら、アプリケーションのニーズに応じてすべての必須フィールドが検証されます。

関連資料

AEM Forms チュートリアルの Sling サーブレット ​

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f