DOM senza restrizioni

Come qualunque altro sviluppatore web mi sono imbattutto nel classico problema dell'accesso al DOM di una risorsa web di un differente dominio rispetto all'applicazione che stavo sviluppando. Le modalità di accesso ai nodi (o tag) di una pagina di un sito esterno, attraverso automazioni di eventi applicati su iframe o finestre popup in genere sono soggette a forme di protezione da parte dei browser e dei domini stessi che ospitano la pagina. Tali misure però sono aggirabili, perchè anche se le indicazioni sono date dai server, l'implementazione è lasciata ai browser e questi, se opportunamente configurati, possono ignorarle.

Armato di buona volontà, e scelto Chrome come browser di lavoro per aggirare le politiche CORS (Richieste HTTP da domini incrociati), ho trovato online una configurazione che faceva al caso mio, ma lungi da farla funzionare senza adottare ulteriori accorgimenti: ho dovuto penare per arrivare alla soluzione completa e funzionante!

Pertanto, con questo articolo, voglio fornire ai lettori la soluzione chiavi in mano, funzionante e testata alla versione attuale del browser (la 69) per facilitare il lavoro a chi necessita dello stesso strumento.

Chrome, permette di accedere ai contenuti cross domain, attraverso l'opzione di avvio --disable-web-security (opzione che abbassa la sicurezza del browser quindi da usare solo temporaneamente e solo per l'operazione da porre in essere), ma questa opzione non funziona se non è associata ad un'altra --user-data-dir="c:\path_directory" dove c:\path_directory è una cartella dove vengono salvati i file per la sessione temporanea e personalizzata di Chrome.

A questo, bisogna aggiungere il fatto che se si vuole usare la versione chrome sbloccata per sessioni differenti, bisogna svuotare volta per volta la cartella c:\path_directory e rimuovere tutti i processi attivi di chrome in memoria.

Quindi ci vuole uno script, ad esempio un bel file .bat con queste istruzioni all'interno:


@echo off
taskkill /F /IM chrome.exe
if exist c:\path_directory (
del /S /Q /F c:\path_directory
rmdir/S /Q c:\path_directory
)
start chrome --disable-web-security --user-data-dir="c:\path_directory" http://url_dominio/path_web_application

A questo punto abbiamo un DOM senza restrizioni, e possiamo creare automatismi di eventi su siti web (ad esempio in javascript) senza blocchi di sicurezza.
Unica avvertenza: usare la tecnica con RESPONSABILITA' !

Lascia un commento