Unzureichende Server-seitige Validierung bei der Aktualisierung des AEM-Profils

In Adobe Experience Manager (AEM) ermöglicht die Authoring-CMS Profilaktualisierungen über die Touch-optimierte Benutzeroberfläche, ohne dass eine robuste Server-seitige Validierung erzwungen wird. Das Problem rührt aus dem standardmäßigen permissiven Validierungsmodell von AEM her, das keine strengen Prüfungen von Profilfeldern erzwingt. Um das Problem zu beheben, implementieren Sie die Server-seitige Validierung mit Sling PostProcessor oder benutzerdefinierter Servlet-Logik.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM), v6.5

Problem/Symptome

  • Eine unzureichende Server-seitige Validierung wurde während einer Schwachstellenbewertung und Penetrationstests (VAPT) festgestellt. Zu den Symptomen gehören:

    • AEM Author CMS akzeptiert bei Profilaktualisierungen über die Touch-optimierte Benutzeroberfläche ungültige E-Mail-Eingaben.
    • Client-seitige Validierung ist vorhanden, aber Server-seitige Prüfungen fehlen, sodass geänderte Anfragen mit ungültigen Daten Profilfelder aktualisieren können.
  • Die Schwachstelle wurde während einer Übung zur Bewertung von Schwachstellen und Penetrationstests (VAPT) identifiziert.

Schritte zur Reproduktion:

  1. Melden Sie sich beim AEM-Backend an und navigieren Sie zur Seite Profil bearbeiten .
  2. Beachten Sie, dass es eine Client-seitige Validierung für das E-Mail-Feld gibt.
  3. Geben Sie eine gültige E-Mail-Adresse ein und unterbrechen Sie die Anfrage mit der Burp Suite, während Sie die Änderungen speichern.
  4. Ändern Sie den Wert des E-Mail-Parameters in einen ungültigen Wert, z. B „fake.
  5. Leiten Sie die geänderte Anfrage weiter und beachten Sie, dass das Profil ohne gültige E-Mail erfolgreich gespeichert wurde.

Auflösung resolution

Das Eingabeprüfungsmodell von AEM ist standardmäßig absichtlich flexibel. Das Repository verfolgt einen permissiven Ansatz und für die meisten Felder, einschließlich des E-Mail-Attributs, werden minimale Einschränkungen erzwungen. Standardmäßig gibt es keine strenge Validierung bei Profildatenfeldern - es liegt an der Anwendung oder dem Kunden, die Content-Integrität bei Bedarf durchzusetzen.

Beachten Sie die folgenden Optionen, um eine robuste Server-seitige Eingabevalidierung einzuführen (z. B. für E-Mail-Felder):

  1. Implementieren Sie die Sling-PostProcessor-Schnittstelle, um die vom Sling-Post-Servlet verwalteten Eingaben während standardmäßiger Inhaltsaktualisierungen in der AEM-Autoreninstanz zu überprüfen.
  2. Fügen Sie Validierungslogik in dedizierten Servlets für Fälle hinzu, in denen Profilaktualisierungen außerhalb des Sling-Post-Servlets verarbeitet werden.

Dadurch wird sichergestellt, dass alle erforderlichen Felder entsprechend den Anforderungen Ihrer Anwendung validiert werden, während die Flexibilität für andere Anwendungsfälle erhalten bleibt.

Verwandtes Lesen

Sling-) in den AEM Forms-Tutorials

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