Activation de la protection de falsification de requêtes intersite dans REST

L'activation de la protection contre la falsification de requête intersites (CSRF) est recommandée lors de l'utilisation d'API REST avec des cookies pour l'authentification. Si votre API REST utilise les jetons WCToken ou WCTrustedToken pour l'authentification, une protection CSRF supplémentaire n'est pas nécessaire.

Pourquoi et quand exécuter cette tâche

La falsification de requête intersites est un type d'attaque malveillante qui amène l'utilisateur à envoyer des requêtes non intentionnelles pour modifier les données lorsque les cookies sont utilisés pour l'authentification. Par exemple, un agresseur informatique peut amener un utilisateur authentifié à cliquer sur un lien mettant à jour ses informations personnelles sans qu'il s'en aperçoive. Dans un tel cas de figure, un site HCL Commerce non protégé accepterait cette requête comme étant valide dans la mesure où des cookies de session appropriés existent dans le cadre de la requête.

Toutefois, lorsque la protection CSRF est activée, un en-tête HTTP spécial, appelé WCAuthToken, est requis dans le cadre de la requête. Si le jeton est attendu, sa valeur doit être égale à l'attribut de requête authToken défini par l'exécution du magasin.

Remarque : L'option WCAuthToken est désactivée par défaut. En effet, les jetons d'authentification par défaut, WCToken et WCTrustedToken sont transmis à l'en-tête et sont donc déjà protégés contre ce type d'attaque.

Procédure

Pour activer WCAuthToken dans le cadre de la protection CSRF :
  1. Ouvrez le fichier de configuration du composant de base personnalisé WCDE_installdir/workspace/WC/xml/config/com.ibm.commerce.foundation/wc-component.xml dans le Transaction server Docker container.
  2. Définissez la propriété AuthTokenEnabledsur true dans le groupe de configuration REST. Par exemple,
    <_config:configgrouping name="REST">
      <!-- Determines if the WCAuthToken HTTP header field is required for DELETE/PUT/POST calls when cookies are used for authentication. Its value must be equal to the authToken request attribute set by the store runtime. -->
      <_config:property name="AuthTokenEnabled" value="true"/>
    </_config:configgrouping>
  3. Déployez la modification apportée à l'environnement de production.

Résultats

La protection CSRF est désormais mise en place pour votre site. Les utilisateurs de votre site sont désormais protégés contre les attaques de falsification de requête intersites.