Activation de la validation de données en liste blanche

Lorsqu'elle est activée, la validation de données en liste blanche permet de faire en sorte que lors de l'exécution d'une commande ou vue URL, les valeurs de paramètre sont conformes à une expression régulière spécifiée. Par exemple, vous pouvez la configurer de façon à ce que storeId soit obligatoirement un entier. Lorsqu'une violation de liste blanche est détectée, la demande est modifiée afin d'être transmise à la vue ProhibCharEncodingErrorView. La validation de données en liste blanche est désactivée par défaut.

Remarque :
  • La validation de données en liste blanche doit être activée globalement et dans des modules Web individuels.
  • La syntaxe des expressions régulières est fondée sur la norme utilisée par Java. Pour connaître la syntaxe d'expression régulière, voir la documentation API Java de Class Pattern.
Avertissement : Soyez extrêmement attentifs lors de la configuration de cette fonction. La validation de données en liste blanche est une fonction limitative car elle restreint l'exécution des instructions et vues URL en fonction de leur configuration. Cette fonction n'exécute pas de validation supplémentaire garantissant que l'expression régulière indiquée est compatible avec votre site. Par exemple, si vous la configurez de façon à ce que storeId soit obligatoirement un caractère alphabétique, votre site risque de tomber en panne. C'est-à-dire que, par défaut, le storeId attendu doit être un entier. Par conséquent, lorsque vous configurez cette fonction, vérifiez que l'expression régulière permet un fonctionnement correct de votre site.

Procédure

  1. Ouvrez le fichier de configuration HCL Commerce.
  2. Recherchez l'élément suivant à l'extérieur de l'élément <Module> :
    
    <XSiteScriptingProtection display="false" enabled="true" name="Cross Site Scripting Protection">
    
  3. Insérez l'exemple de configuration de liste blanche suivante avant l'élément qui précède et modifiez-le pour qu'il corresponde à vos besoins métier :
    
    <WhiteListProtection 
           enabled="true" 
           name="WhiteListProtection"
           display="false">
       <param name="storeId" regex="[-]?[0-9]*"/>
       <param name="langId" regex="[-]?[0-9]*"/>
       <param name="catalogId" regex="[-]?[0-9]*"/>
       <param name="categoryId" regex="[-]?[0-9]*"/>
       <param name="productId" regex="[-]?[0-9]*"/>
       <param name="parent_category_rn" regex="[-]?[0-9]*"/>
       <param name="physicalStoreId" regex="[-]?[0-9]*"/>
       <param name="geoNodeId" regex="[-]?[0-9]*"/>  
    </WhiteListProtection>
    
    <XSiteScriptingProtection display="false" enabled="true" name="Cross Site Scripting Protection">
    
    où :
    WhiteListProtection.enabled
    Indicateur global permettant d'activer ou de désactiver la validation de données en liste blanche. Les valeurs admises sont true ou false.
    WhiteListProtection.param.name
    Nom du paramètre à valider.
    WhiteListProtection.param.regex
    Expression régulière définissant les valeurs autorisées. La syntaxe des expressions régulières est fondée sur la norme utilisée par Java.
    Pour connaître la syntaxe d'expression régulière, voir la documentation API Java de Class Pattern de Sun.
    WhiteListProtection.param.maxLength
    Nombre maximal de caractères autorisés.
  4. Dans chaque module Web nécessitant la validation de données en liste blanche, recherchez l'élément Module correspondant.
    Par exemple, l'élément de module Web Stores :
    
    <Module contextPath="/webapp/wcs/stores"
       fileServletEnabled="false" name="Stores"
       urlMappingPath="/servlet" webAlias="/wcsstore">
       <InitParameters adapters="XML/HTTP, BrowserAdapter"
          contextSetName="Store" handleDoubleClick="true"/>
       <URLRedirectFilter enable="true"/>
    </Module>
  5. Insérez un élément WhiteListProtection pour activer cette fonction pour le module Web :
    
    <WhiteListProtection enable="true"/>
    

    Par exemple, pour activer la validation de données en liste blanche dans le module Web Stores, l'élément WhiteListProtection est ajouté dans le fragment suivant en gras :

    
    <Module contextPath="/webapp/wcs/stores"
       fileServletEnabled="false" name="Stores"
       urlMappingPath="/servlet" webAlias="/wcsstore">
       <InitParameters adapters="XML/HTTP, BrowserAdapter"
          contextSetName="Store" handleDoubleClick="true"/>
       <URLRedirectFilter enable="true"/>
       <WhiteListProtection enable="true"/>
    </Module>
    Remarque : Si l'élément WhiteListProtection n'est pas indiqué pour un module Web, la valeur WhiteListProtection est false (validation de données en liste blanche désactivée).