Precedentemente conosciute con l’appellativo Native File System API le nuove File System Access API rappresentano una sorta di interfaccia tra le applicazioni web caricate dal browser e i file memorizzati sul dispositivo dell’utente.
Dopo i test che sono stati svolti nel corso degli ultimi anni (ne parlavamo già due anni fa: Chrome permetterà alle applicazioni web di leggere e scrivere sul file system) i principali browser stanno iniziando a supportare le API che consentiranno alle applicazioni web di interagire con il contenuto dei file e delle cartelle salvati su disco.
Come messo in evidenza in questa pagina le API File System Access sono supportate in modo ancora parziale nelle ultime versioni di Chrome, in Edge e Opera.
Mozilla ha invece da sempre criticato le API: come si può leggere in questa pagina la fondazione ritiene che rendere le applicazioni web in grado di “leggere e scrivere a livello di filesystem è qualcosa di potenzialmente molto pericoloso. Dobbiamo considerare qualsiasi soluzione alla luce delle implicazioni in termini di sicurezza e privacy. Riconosciamo che gli autori delle specifiche hanno preso a cuore il problema. Siamo però preoccupati che questo tipo di soluzioni aumenteranno il rischio di incidenti in tema di sicurezza“.
È vero che ogniqualvolta un’applicazione richiederà l’accesso al file system (soltanto da pagine caricate via HTTPS) l’utente verrà immediatamente informato e dovrà consentire o negare l’attività ma eventuali problematiche nell’implementazione delle API File System Access potrebbero rivelarsi fatali contribuendo ad ampliare la superficie d’attacco potenzialmente sfruttabile da parte dei criminali informatici.
Utilizzando le nuove API le applicazioni web potranno infatti leggere il contenuto delle cartelle locali, accedere ai dati e scrivere informazioni su nuovi file o su elementi già presenti nel dispositivo dell’utente.
Come tutte le moderne API JavaScript anche File System Access funziona in modo asincrono.
Qual è il senso di tutto ciò? Rendere le applicazioni web sempre più in grado di sostituire i tradizionali programmi desktop e per farlo, sostengono i promotori delle nuove API, è necessario aprire le porte all’interazione con il file system.
I permessi utilizzabili dalle API File System Access saranno separati per le operazioni di lettura e scrittura con il browser che mostrerà una richiesta di autorizzazione a sé per ciascun file o cartella che l’applicazione chiede di utilizzare. Il cosiddetto handle al file o alla cartella resta valido per tutto il tempo durante il quale l’utente si serve dell’applicazione; se però la risorsa cui viene fatto riferimento venisse modificata o spostata l’handle ne risulterebbe invalidato.
Il metodo che ad esempio consentirà l’accesso al file system in scrittura è descritto in questa pagina.
È opportuno tenere d’occhio le modalità con le quali le API verranno via a via integrate nei browser web evitando in futuro di accordare permessi di lettura e scrittura con troppa leggerezza.