Validation côté serveur insuffisante dans la mise à jour du profil AEM
Dans Adobe Experience Manager (AEM), le CMS Auteur autorise les mises à jour de profil par le biais de l’interface utilisateur tactile sans appliquer une validation côté serveur robuste. Le problème provient du modèle de validation permissive par défaut d’AEM, qui n’impose pas de contrôles stricts sur les champs de profil. Pour résoudre ce problème, implémentez la validation côté serveur à l’aide du post-processeur Sling ou d’une logique de servlet personnalisée.
Description description
Environnement
Adobe Experience Manager (AEM), v6.5
Problème/Symptômes
-
Une validation côté serveur insuffisante a été identifiée au cours d’une évaluation des vulnérabilités et d’un test de pénétration (VAPT). Les symptômes incluent :
- Le CMS de création AEM accepte les entrées d’e-mail non valides lors des mises à jour de profil via l’interface utilisateur tactile.
- La validation côté client existe, mais les vérifications côté serveur sont manquantes, ce qui permet aux requêtes modifiées avec des données non valides de mettre à jour les champs de profil.
-
La vulnérabilité a été identifiée au cours d’un exercice d’évaluation de la vulnérabilité et de tests de pénétration (VAPT).
Procédure à suivre :
- Connectez-vous au serveur principal d’AEM et accédez à la page Modifier le profil .
- Notez qu’il existe une validation côté client pour le champ d’e-mail.
- Saisissez une adresse e-mail valide et interceptez la demande à l’aide de Burp Suite lors de l’enregistrement des modifications.
- Remplacez la valeur du paramètre d’e-mail par une valeur non valide, telle que faux.
- Transférez la requête modifiée et notez que le profil est enregistré avec succès sans e-mail valide.
Résolution resolution
Par défaut, le modèle de validation des entrées d’AEM est intentionnellement flexible. Le référentiel adopte une approche permissive et des restrictions minimales sont appliquées à la plupart des champs, y compris l’attribut d’e-mail. Par défaut, les champs de données de profil ne font généralement pas l’objet d’une validation stricte. C’est à l’application ou au consommateur qu’il revient d’appliquer l’intégrité du contenu, le cas échéant.
Pour introduire une validation d’entrée côté serveur robuste (par exemple, pour les champs d’e-mail), considérez les options suivantes :
- Implémentez l’interface Sling PostProcessor pour valider les entrées gérées par le servlet Sling Post lors des mises à jour de contenu standard dans l’instance de création AEM.
- Ajoutez une logique de validation dans les servlets dédiés pour les cas où les mises à jour de profil sont gérées en dehors du servlet Post Sling.
Tous les champs requis sont ainsi validés en fonction des besoins de votre application, tout en conservant une flexibilité pour d’autres cas d’utilisation.
Lecture connexe
Servlet Sling dans les tutoriels AEM Forms