Perché Microsoft Windows non consente caratteri speciali nei nomi di file e cartelle? [chiuso]

1
  1. Voglio sapere se è stato fatto per migliorare la sicurezza dei file nominati? Se sì, come? Per caratteri speciali, ti sto chiedendo di '<>"/\

  2. C'è un modo per aggirare questo controllo?

posta one 31.10.2016 - 13:34
fonte

2 risposte

5

1) Voglio sapere se è stato fatto per migliorare la sicurezza dei file nominati? Se sì, come?

Bene, la maggior parte delle restrizioni sui caratteri sono dovute alla loro riservatezza per le funzioni di sistema. Quindi suppongo che la risposta sarebbe no .

Esempi : la barra verticale ( | ) viene utilizzata su Windows per designare il pipelining del software, meno di ( < ) e maggiore di ( > ) vengono utilizzati per reindirizzare input e output , rispettivamente, il punto interrogativo ( ? ) è usato come carattere jolly, ecc.

C'è un elenco più dettagliato di caratteri riservati su questo articolo di Wikipedia.

2) Esiste un modo per aggirare questo controllo?

Bene, sì e no. Per quanto ne so non c'è modo di usare una barra ( / ) in un nome di file. Periodo. Ma, come sottolineato da William Hilsum su questa risposta, invece di una barra ( / ) si potrebbe usare un simbolo di divisione ( ), invece di due punti ( : ) si potrebbe usare l'uso della lettera del modificatore due punti ( ), e così via.

    
risposta data 31.10.2016 - 13:58
fonte
3

Storicamente, la restrizione non è sicuramente dovuta a problemi di sicurezza. Risale a prima che la sicurezza fosse un obiettivo. Piuttosto si tratta di una restrizione della shell della riga di comando: generalmente non è possibile creare una riga di comando che possa agire su un file il cui nome contiene quei caratteri speciali, quindi piuttosto che consentire alle persone di creare file che non possono manipolare, DOS e Windows aggiunte restrizioni nella maggior parte dei livelli del sistema operativo per impedire a tutte le applicazioni di creare tali file. DOS proibiva gli spazi; più tardi Windows consente loro, ma è vietato lasciare la maggior parte dei caratteri di punteggiatura proibiti.

In Windows moderno, è effettivamente possibile accedere a file il cui nome contiene qualcosa tranne null e backslash che utilizza percorsi UNC ( \?\… ). Questo non è supportato da tutte le applicazioni.

Sebbene la sicurezza non sia l'obiettivo, l'esperienza su Unix dimostra che migliora la sicurezza. La maggior parte dei sistemi Unix consente qualsiasi cosa, ad eccezione di slash e null nei nomi di file, ma molti script di shell sono scritti con noncuranza e soffocano su nomi di file contenenti caratteri speciali della shell, in particolare spazi e caratteri jolly. (Vedi Perché la mia shell choke di script su spazi vuoti o altri caratteri speciali? , un argomento ricorrente sui siti di discussione / supporto di Unix e Implicazioni sulla sicurezza di dimenticare di citare una variabile in shell bash / POSIX che si concentra sull'aspetto sicurezza.) Il linguaggio shell nativo di Windows è diverso quindi i fastidiosi caratteri speciali non sono gli stessi, ma gli spazi sono problematici in entrambi e " sarebbe piuttosto problematico in Windows poiché è molto comunemente usato per citare i nomi dei file.

    
risposta data 01.11.2016 - 00:52
fonte

Leggi altre domande sui tag