Installazione e aggiornamento > Installazione di ThingWorx > Risorse di configurazione ThingWorx > Configurazione delle impostazioni della convalida ESAPI
Configurazione delle impostazioni della convalida ESAPI
La convalida dell'intestazione/parametro della richiesta HTTP tramite l'interfaccia Enhanced Security Application Programming Interface (ESAPI) è configurabile mediante il file validation.properties. Il file validation.properties viene creato all'avvio di ThingWorx e si trova nella seguente posizione: /ThingworxStorage/esapi. È possibile configurare l'espressione regex per aggiungere intestazioni/proprietà o modificare i valori esistenti.
Configurazione di una nuova intestazione
Per configurare una nuova intestazione, aggiungere quanto segue al file validation.properties. Per il nome dell'intestazione non viene fatta distinzione tra maiuscole e minuscole.
"Validator.HTTPHeaderValue_{new-header-name}={regex}"
Configurazione di un nuovo parametro
Per configurare un nuovo parametro, aggiungere al file validation.properties quanto segue: Il campo del nome del parametro effettua la distinzione tra maiuscole e minuscole.
Validator.HTTPParameterValue_{new-parameter-name}={regex}"
Comportamenti di default
ThingWorx utilizza il regex come definito nel file validation.properties per ogni intestazione e parametro per la corrispondenza dell'espressione.
Se una richiesta HTTP contiene un'intestazione non definita nel file validation.properties, ThingWorx utilizza l'espressione regex definita per Validator.HTTPHeaderValue per la corrispondenza dell'espressione.
Se una richiesta HTTP contiene un parametro non definito nel file validation.properties, ThingWorx utilizza l'espressione regex definita per Validator.HTTPParameterValue per la corrispondenza dell'espressione.
ThingWorx elimina il valore di ogni intestazione e parametro nella richiesta HTTP se un valore non corrisponde alla rispettiva espressione regex.
ESAPI convalida la lunghezza dei parametri e delle intestazioni tramite HTTPRequestHeaderMaxLength e HTTPRequestParameterMaxLength. Il valore di default per ciascuna impostazione è 2000 caratteri, ma può essere modificato nel file platform-settings.json. Vedere l'esempio riportato di seguito:
{
"PlatformSettingsConfig": {
"BasicSettings": {
"HTTPRequestHeaderMaxLength": 2000,
"HTTPRequestParameterMaxLength": 2000
}
},
"PersistenceProviderPackageConfigs": {
"PostgresPersistenceProviderPackage": {
"ConnectionInformation": {
"jdbcUrl": "jdbc:postgresql://localhost:5432/thingworx",
"password": "password",
"username": "twadmin"
}
}
}
}
Dopo aver convalidato un valore rispetto a un'espressione regolare configurata, ESAPI esegue inoltre le convalide riportate di seguito.
1. Controlli per più token codificati (ad esempio segni percentuali e cookie) nel valore; se viene individuato più di un token codificato, viene generato un errore. Questa impostazione può essere disattivata aggiungendo Encoder.AllowMultipleEncoding=true all'inizio del file validation.properties.
2. Se sono presenti più token codificati e sono consentite più codifiche, è disponibile inoltre un controllo per verificare che più codifiche non siano di tipo misto. Questa impostazione può essere disattivata aggiungendo Encoder.AllowMixedEncoding=true all'inizio del file validation.properties.
Azione necessaria prima dell'aggiornamento da ThingWorx 6.0 e versioni successive
Se si esegue l'aggiornamento dalla versione 6.0 o successive, prima di effettuare tale operazione è necessario rimuovere il file validation.properties esistente da /ThingworxStorage/esapi. Se non si rimuove il file, il file aggiornato con questi parametri aggiuntivi non sovrascrive la versione corrente durante l'aggiornamento.
Le istruzioni dettagliate per l'aggiornamento sono disponibili nel documento Installazione di ThingWorx nella pagina Documentazione di riferimento del sito Web.
È stato utile?