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
- Ouvrez le fichier de configuration HCL Commerce.
-
Recherchez l'élément suivant à l'extérieur de l'élément
<Module>:<XSiteScriptingProtection display="false" enabled="true" name="Cross Site Scripting Protection"> -
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 :
où :<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">- WhiteListProtection.enabled
- Indicateur global permettant d'activer ou de désactiver la validation de données en liste blanche. Les valeurs admises sont
trueoufalse. - 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.
- WhiteListProtection.param.maxLength
- Nombre maximal de caractères autorisés.
-
Dans chaque module Web nécessitant la validation de données en liste blanche, recherchez l'élément
Modulecorrespondant.Par exemple, l'élément de module WebStores:<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> -
Insérez un élément
WhiteListProtectionpour 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émentWhiteListProtectionest 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émentWhiteListProtectionn'est pas indiqué pour un module Web, la valeurWhiteListProtectionest false (validation de données en liste blanche désactivée).