Activation de la falsification de requêtes intersite dans Spring
La falsification de requête intersite est un type d'attaque malveillante qui amène l'utilisateur à envoyer des requêtes non intentionnelles. Par exemple, un agresseur informatique peut amener un utilisateur authentifié à cliquer sur un lien pour mettre à jour ses informations personnelles. HCL Commerce accepte cette requête comme étant valide, dans la mesure où des cookies de session appropriés existent dans le cadre de la requête.
Pourquoi et quand exécuter cette tâche
Lorsque la protection de falsification de requête intersite est activée, un paramètre d'URL désigné appelé authToken doit être inclus dans la requête. La valeur du paramètre est générée par HCL Commerce et transmise à la page dans un attribut de requête du même nom.
Remarque : Le paramètre authToken est disponible uniquement sur les pages protégées par SSL car ce jeton ne doit pas être visible. Seules les adresses URL sensibles utilisant SSL nécessitent cette protection. La protection CSRF dans HCL Commerce est destinée à protéger un utilisateur après qu'il a été pleinement authentifié, et non à un état partiellement authentifié (rappelé).
Procédure
-
1. Identifiez le contrôleur à protéger. Par exemple,
userRegistrationUpdate. -
2. Ouvrez le fichier de configuration Spring dans lequel le contrôleur est défini. Ajoutez une propriété à l'action. Nommez la propriété csrfProtected.
Par exemple :
<bean id="userRegistrationUpdate" class="com.ibm.commerce.store.mvc.controller.spring.RESTActionController"> <property name="https" value="1"/> <property name="authenticate" value="0"/> <property name="parameter" value="personHandler.updatePerson"/> <property name="generic" value="1"/> <property name="csrfProtected" value="1"/> </bean>Remarque : La requête est protégée dans le cadre de la protection de falsification de requête intersite lorsqu'elle comporte une valeur de propriété de 1. -
3. Editez le fichier JSP qui appelle ce contrôleur, afin d'inclure le paramètre d'URL authToken.
Par exemple :
<input type="hidden" name="authToken" value="${authToken}" id="WC_UserRegistrationUpdateForm_FormInput_authToken_In_Register_1"/>Remarque : Si le fichier JSP est mis en cache, la partie de la page qui indique authToken est incluse dans un fragment JSP qui n'est pas mis en cache. - 4. Déployez les modifications apportées à l'environnement de production.
Résultats
Remarque : Lorsqu'une violation de falsification de requête intersite est détectée, la requête est modifiée afin d'être transmise à la vue
CrossSiteRequestForgeryErrorView. En d'autres termes, la vue est affichée lorsque les requêtes configurées pour être protégées n'incluent pas le paramètre authToken.