¿Por qué Microsoft Windows no permite caracteres especiales en los nombres de archivos y carpetas? [cerrado]

1
  1. ¿Quiero saber si se hace para mejorar la seguridad de los archivos nombrados? Si es así, ¿cómo? Por caracteres especiales, pregunto por '<>"/\

  2. ¿Hay alguna forma de omitir esta comprobación?

pregunta one 31.10.2016 - 13:34
fuente

2 respuestas

5

1) ¿Quiero saber si se hace para mejorar la seguridad de los archivos nombrados? Si es así, ¿cómo?

Bueno, la mayoría de las restricciones de caracteres se deben a que están reservadas para las funciones del sistema. Así que supongo que la respuesta sería no .

Ejemplos : la barra vertical ( | ) se usa en Windows para designar la canalización del software, menos de ( < ) y mayor que ( > ) se usan para redirigir input y output , respectivamente, el signo de interrogación ( ? ) se usa como comodín, etc.

Hay una lista más detallada de los caracteres reservados en este artículo de Wikipedia.

2) ¿Hay alguna manera de evitar esta comprobación?

Bueno, sí y no. Que yo sepa, no hay manera de usar una barra ( / ) en un nombre de archivo. Período. Pero, como lo señala William Hilsum en esta respuesta, en lugar de una barra ( / ) uno podría usar un símbolo de división ( ), en lugar de dos puntos ( : ) uno podría usar el uso de la letra modificadora dos puntos ( ), y así sucesivamente.

    
respondido por el appa yip yip 31.10.2016 - 13:58
fuente
3

Históricamente, la restricción definitivamente no se debe a problemas de seguridad. Se remonta a antes de que la seguridad fuera un objetivo. Más bien es una restricción del shell de la línea de comandos: generalmente no se puede construir una línea de comandos que actúe sobre un archivo cuyo nombre contenga esos caracteres especiales, así que en lugar de permitir que las personas creen archivos que no pudieron manipular, DOS y luego Windows Se agregaron restricciones en la mayoría de las capas del sistema operativo para evitar que todas las aplicaciones creen dichos archivos. DOS prohibió espacios; Más tarde, Windows los permite, pero deja la mayoría de los caracteres de puntuación prohibidos como prohibidos.

En Windows moderno, en realidad es posible acceder a archivos cuyo nombre no contenga nada y está nulo y con barra invertida utilizando las rutas UNC ( \?\… ). Esto no es compatible con todas las aplicaciones.

Si bien la seguridad no era el objetivo, la experiencia en Unix muestra que sí mejora la seguridad. La mayoría de los sistemas Unix permiten cualquier cosa excepto una barra y un valor nulo en los nombres de archivo, pero muchos scripts de shell se escriben de forma descuidada y se ahogan con los nombres de archivo que contienen caracteres especiales de shell, especialmente espacios y comodines. (Vea ¿Por qué mi shell ¿Estrangulamiento del guión en espacios en blanco u otros caracteres especiales? , un tema recurrente en los sitios de soporte / discusión de Unix, y Implicaciones de seguridad de olvidarse de citar una variable en bash / POSIX shells que se centra en el aspecto de seguridad.) El lenguaje de shell nativo de Windows es diferente por lo tanto, los caracteres especiales problemáticos no son los mismos, pero los espacios son problemáticos en ambos y " sería bastante problemático en Windows ya que se usa muy comúnmente para citar nombres de archivos.

    
respondido por el Gilles 01.11.2016 - 00:52
fuente

Lea otras preguntas en las etiquetas