Ci è recentemente capitato di aggiornare un server applicativo Domino da una versione veramente obsoleta; in realtà in questi casi non si può aggiornare ma si deve creare un nuovo server Windows per poi fare l’installazione di Domino da zero e trasferire tutti i file .nsf e quant’altro serva.
Non è un operazione nuova e già avevamo affrontato questi casi ma questa volta abbiamo avuto una novità: le applicazione trasferite sul nuovo server non funzionavano più correttamente .
Non si trattava di applicazioni particolarmente complesse, nessun uso uso di Xpages o componenti Java . Anzi, lo sviluppo di queste applicazioni è chiaramente datato (vent’anni ?) e quindi le tecnologie usate erano altrettanto vecchie ma per gli utenti erano funzionali e soddisfacenti così (come spesso capita con le applicazioni Domino !) .
Abbiamo iniziato ad investigare il problema ed abbiamo scoperto che semplicemente le applicazioni non caricavano correttamente dei file .js contenenti delle funzioni javascript e/o dei fogli di stile .css.
Aprendo l’applicazione da un browser attivandone gli strumenti per sviluppatori con F12 abbiamo trovato nella console dei messaggi il relativo errore:
Refused to execute script from 'xxxxxx.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled. Refused to apply style from 'xxxxxx.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
Ovviamente a questo punto non venedo caricati i file .js e .css gran parte dell’applicazione non si comportava correttamente.
Dopo un po’ di ricerche abbiamo finalmente trovato la soluzione: delle applicazioni web potrebbero non funzionare più a causa dell’opzione X-Content-Type-Options: nosniff
inserita nell’header e che,per una maggiore sicurezza, è sempre incluso in una risposta http per tutti gli URL Domino dalla versione 10.0.1 FP4 .
Una volta capita la causa abbiamo anche trovato il workaround : si deve specificare nel notes.ini del server Domino una variabile grazie a cui l’header http non comprenderà di default questa opzione.
Quindi abbiamo aperto il notes.ini del server Domino ed abbiamo aggiunto questa riga:
HTTP_DISABLE_X_CONTENT_TYPE_OPTIONS_NOSNIFF=1
Dopo aver salvato e fatto ripartire il server Domino tutto ha ripreso a funzionare correttamente.
Da un punto strettamente teorico la soluzione corretta sarebbe stata verificare il codice dell’applicazione in modo correggere eventuali errori o conformarlo agli standard attuali e quindi non avere bisogno di questo workaround ma si sa come vanno queste cose: la priorità era far funzionare il tutto nel minor tempo possibile , poi potremo verificare il codice .
Per ora anche questo problema è risolto!
Vi allego i link ai due documenti che ci hanno aiutato nella soluzione del problema:
https://support.hcl-software.com/csm?id=kb_article&sysparm_article=KB0077199
0 commenti