Habilitación de la validación de datos de lista blanca

Cuando está habilitada, la validación de datos de lista blanca asegura que, cuando se ejecuta una vista o un mandato de URL, los valores de parámetro se ajustan a una expresión regular especificada. Por ejemplo, puede configurarla de modo que el storeId deba ser un entero. Cuando se detecta una violación de lista blanca, la solicitud cambia a la vista ProhibCharEncodingErrorView. La validación de datos de lista blanca está inhabilitada de forma predeterminada.

Nota:
  • Para activar la validación de datos de lista blanca, debe habilitarla globalmente y en módulos web individuales.
  • La sintaxis de expresiones regulares se basa en el estándar que se utiliza en Java. Para conocer la sintaxis de expresión regular, consulte la documentación de API Java de Class Pattern.
Atención: Vaya con cuidado cuando configure esta función. La validación de datos de lista blanca es una característica restrictiva en el sentido de que restringe la ejecución de mandatos y vistas de URL por su configuración. Esta función no realiza una validación adicional para garantizar que la expresión regular especificada sea compatible con el sitio. Por ejemplo, si la configura de modo que el storeId debe ser un carácter alfabético, es probable que el sitio se interrumpa. Es decir, puesto que de forma predeterminada, se espera que storeId sea un entero. Por lo tanto, cuando configure esta función, asegúrese de que la expresión regular permita que el sitio funcione correctamente.

Procedimiento

  1. Abra el archivo de configuración de HCL Commerce.
  2. Busque el elemento siguiente fuera del elemento <Module>:
    
    <XSiteScriptingProtection display="false" enabled="true" name="Cross Site Scripting Protection">
    
  3. Inserte la configuración de lista blanca de ejemplo siguiente antes del elemento anterior y modifíquela para que se ajuste a las necesidades de negocio:
    
    <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">
    
    Donde:
    WhiteListProtection.enabled
    Distintivo global para habilitar o inhabilitar la validación de datos de lista blanca. Los valores válidos son true o false.
    WhiteListProtection.param.name
    Nombre del parámetro que se va a validar.
    WhiteListProtection.param.regex
    La expresión regular que define los valores permitidos. La sintaxis de expresiones regulares se basa en el estándar que se utiliza en Java.
    Para conocer la sintaxis de expresión regular, consulte la documentación de API Java Class Pattern de Sun.
    WhiteListProtection.param.maxLength
    Número máximo de caracteres permitido.
  4. En cada módulo web que requiere validación de datos de lista blanca, busque el elemento Module correspondiente.
    Por ejemplo, el elemento de módulo 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. Inserte un elemento WhiteListProtection para habilitar esta función en dicho módulo web:
    
    <WhiteListProtection enable="true"/>
    

    Por ejemplo, para habilitar la validación de datos de lista blanca en el módulo web Stores, se añade el elemento WhiteListProtection en el siguiente fragmento de código en negrita:

    
    <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>
    Nota: Si el elemento WhiteListProtection no está especificado para un módulo web, el valor predeterminado WhiteListProtection es falso (la validación de datos de lista blanca está inhabilitada).