2015-11-16 28 views
5

Sto creando un'applicazione Web per il mio cliente. L'applicazione verrà installata su un server dedicato all'interno della rete aziendale. Vuole vedere la lista dei suoi file locali (dal suo PC locale) sulla pagina web. Significa che ogni visitatore può vedere l'elenco dei suoi file locali da qualche cartella.File system dell'utente di accesso all'applicazione Web

So che l'applicazione web non può avere accesso al file system del visitatore. Il browser limita questo design. Naturalmente, potrebbero esserci alcune estensioni del browser e applet e app flash o persino hack. Ma non è questo il caso.

Ma come posso spiegargli questo? Mi indica le finestre di dialogo 'salva come' o 'carica il file' e dice che altre applicazioni possono farlo. Non so come spiegargli che questa è solo l'interazione di un browser.

Ho provato a google per alcuni collegamenti a prove, ma non riesco a trovare qualcosa in fretta.

Potete darmi alcuni collegamenti ai documenti che descrivono l'impossibilità di accedere alla cartella dell'utente dall'applicazione web?

+1

Interessantemente non sembra che ci sia materiale autorevole altamente visibile per supportare questa ben nota restrizione! Naturalmente ci sono molte soluzioni alternative, a seconda di ciò che il client ti permette di fare/installare. Potrebbe richiederlo dopo aver visto alcune caratteristiche del NAS per l'accesso ai file online. Se ciò può aiutarti, potrei solo trovare libri e piccoli testi: http://help.adobe.com/en_US/air/security/WS485a42d56cd196415cc29732124ef23decb-7ff7.html e https://books.google.com/books ? id = ntsJqzfwFhkC & pg = PA258 & lpg = PA258 # v = messaggio in entrata & q & f = false – ghybs

risposta

7

Finalmente ho fatto una raccolta di alcune citazioni ed è fatto ..

https://en.wikipedia.org/wiki/JavaScript#Security

script eseguito in una sandbox in cui si può eseguire solo azioni relativi al Web, non per tutti gli usi attività di programmazione, come la creazione di file

https://www.us-cert.gov/publications/securing-your-web-browser

JavaScript, noto anche come ECMAScript, è un linguaggio di scripting che viene utilizzato per rendere i siti Web più interattivi. Ci sono specifiche nello standard JavaScript che limitano alcune funzionalità come l'accesso ai file locali.

https://developer.mozilla.org/en-US/docs/Web/API/File_System_API/Introduction#restrictions

Poiché il file system è sandbox, una web app non può accedere ai file di un altro app. Inoltre, non è possibile leggere o scrivere file in una cartella arbitraria (ad esempio, Immagini e Documenti) sul disco rigido dell'utente.

0

Che dire del confronto con il modello Client-Server? Si invia una richiesta al server (richiesta del sito web, file o qualsiasi altra cosa) e il webserver può rispondere. Non c'è accesso diretto al file system sul server (server web in mezzo) e il client può scegliere ciò che invia al server (finestra di selezione del file nel browser).

+0

In nessun modo. È possibile aprire l'https://www.sumopaint.com/ applicazione online e ha la voce di menu "Apri dal mio computer". Cliccando su di esso puoi vedere l'elenco dei tuoi file locali e persino delle unità montate. Quindi - magia - può accedere ai file. :( – baldr

+0

No, il client - l'utente - vuole inviare esattamente le cose scelte in questo dialougue dal browser al server: è il cliente, può scegliere quello che invia. –

+2

OMG, ho aperto il dialogo di file da così tanti siti Web. Così ora tutti sanno quali sono i file sul mio computer. ** La finestra di dialogo File ** è aperta sul server del client non sa nemmeno se qualcuno ha aperto quella finestra o no. Anche lo script sulla pagina non può sapere quali file vengono visualizzati in la finestra di dialogo.Può solo accedere al file che l'utente seleziona per caricare nient'altro. – TheVillageIdiot

1

Mozilla. File System API Restrictions

Poiché il file system è sandbox, una web app non può accedere ai file un'altra di app. Inoltre, non è possibile leggere o scrivere file in una cartella arbitraria (ad esempio, Immagini e Documenti) sul disco rigido dell'utente .

1

Forse questo documento oscilla?

http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#security-considerations

Sezione 4.1

Un'applicazione può richiedere lo spazio di archiviazione temporanea o persistente. La memorizzazione temporanea può essere più facile da ottenere, a discrezione della UA [restrizioni quote più libere, disponibili senza richiedere all'utente], ma i dati memorizzati possono essere cancellati a proprio piacimento, ad es. per far fronte a una carenza di spazio su disco.

Al contrario, una volta che è stata concessa l'archiviazione permanente, i dati memorizzati lì dall'applicazione non devono essere eliminati dal sistema operativo senza l'intervento dell'utente. L'applicazione può ovviamente cancellarla a piacimento. L'UA dovrebbe richiedere il permesso all'utente prima di concedere lo spazio di archiviazione persistente all'applicazione.

Questa API specifica l'isolamento dell'origine standard in un contesto di file system, insieme alla persistenza dei dati tra le chiamate. È probabile che le applicazioni utilizzino la memoria temporanea per la memorizzazione nella cache e, se è ancora disponibile in una sessione precedente, è spesso utile. I dati persistenti, d'altra parte, sono inutili se non è possibile accedervi nuovamente la prossima volta che viene invocato. Tuttavia, anche i dati persistenti possono essere cancellati manualmente dall'utente [tramite l'UA o tramite le operazioni dirette del filesystem].