Javascript, HTML, CSS e... !
0 commenti

Nascondere il codice agli occhi degli utenti

Come proteggere il codice Apps Script in un Foglio di lavoro Google

A differenza dei file Excel, dove il codice in VBA può essere protetto per mezzo di funzionalità previste dallo strumento, in uno Spreadsheet (Foglio di Google) non esistono sistemi integrati che, con la stessa facilità, permettono la protezione del codice Apps Script dagli occhi degli utilizzatori del documento.

Non sono pochi pertanto quelli che si domandano come poter ovviare a questo, definiamolo pure, inconveniente.
Esistono ad ogni modo delle soluzioni nonché workaround per poter ottenere quanto desiderato.

Come prima soluzione da proporre c'è quella di pubblicare lo script come add-on, ovvero come componente aggiuntivo. Durante la fase di pubblicazione è possibile selezionare il tipo di visibilità per l'add-on ovvero, pubblica o privata.
Nel caso di visibilità privata, il componente aggiuntivo, sarà escluso dall'elenco delle add-on nel G Suite Marketplace. Inoltre, a differenza del caso della visibilità pubblica, i tempi di pubblicazione sono relativamente veloci (dai 5 ai 20 minuti) in quanto, in questo caso, non vengono sottoposti al processo di approvazione da parte di Google. È inoltre facile condividere i componenti aggiuntivi con utenti specifici: direttamente dalla dashboard del Chrome Web Store è possibile recuperare l'URL dell'add-on ed attribuirlo ad altre persone o a un gruppo.
Da precisare che, nonostante gli utenti che possono accedere all'add-on sono in grado di ottenere l'URL del progetto Apps Script tramite il file crx di tale add-on (ci sono diverse estensioni per il browser che lo consentono), non potranno accedere al codice del file in quanto quest'ultimo non è condiviso.

Di contro c'è da dire che le add-on hanno delle limitazioni che possono non essere in linea con la logica dell'applicazione che si sta sviluppando. Una di esse è legata al trigger installabile basato sul tempo che, come indicato nella documentazione ufficiale, può essere usato al massimo una volta ogni ora.

Nel caso in cui la pubblicazione come componente aggiuntivo non è un'opzione percorribile, una delle alternative è quella di utilizzare un'applicazione web, utilizzando le Apps Script API o le Google Sheets API.
Il concetto che sta alla base di questo approccio è che, quando gli utenti eseguono una funzione in uno Spreadsheet, la funzione recupera i risultati dalla Web App e li mostra all'intenro del Foglio di calcolo Google. In questo caso, lo Spreadsheet utilizzato dagli utenti ed il progetto distribuito come Web App sono separati, di conseguenza gli utenti non possono vedere lo script dell'applicazione web.

Un altro approccio può essere quello di creare un file e pubblicarlo come Libreria. Tale file conterrà le funzioni dedicate allo Spreadsheet desiderato e sarà distribuito con una versione. Considerando che anche l'utente utilizzatore dovrà avere accesso alla libreria, quantomeno a livello di lettura, sarà in grado di vedere il codice al suo intenro. In questo caso l'idea è quella di rimuovere il contenuto dello script dal e sostituirlo con uno fittizio, dopodiché salvarlo come una nuova versione.
L'utente in questo caso, poiché l'applicazione sta ancora lavorando sulla vecchia versione della libreria, vedrà solo il nuovo codice mentre lo script originale farà il suo lavoro come è stato previsto.

Esistono poi strumenti, disponibili anche online, che minimizzano il codice e/o lo offuscano rendendo le variabili ed il flusso dell'applicazione difficile da interpretare da parte di utente, ma in tal caso, a differenza dei precedenti, il codice che fa girare l'applicazione può essere copiato.

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]http://www.appsscript.it[/url] se devi riferirti ad un indirizzo web