¿Los sitios web pueden ver la estructura de directorios de su computadora cuando carga archivos a través de formularios web (especialmente JavaScript)?
Si es así, ¿cuáles son las formas de evitar esto al subir?
A través de la API de archivos de Javascript, que debe usarse como un estándar para cualquier interacción de archivos web, las únicas cosas sobre archivos que son conocidas por el javascript y el servidor son:
la respuesta directa a su pregunta está en esta pregunta SO cuando alguien quería hacer exactamente eso (pruebe los ejemplos de jfiddle para comprobar que nadie mostrará la ruta completa cuando seleccione un archivo): Cómo obtener la ruta completa del archivo seleccionado en cambio de archivo de entrada usando javascript
Hay algunas API que te permitieron hacer esto (ActiveX) pero en su mayoría se están eliminando gradualmente.
Si el navegador y, especialmente, su motor javascript no tienen ninguna vulnerabilidad, nunca devolverá una vista de los sistemas de archivos locales. Por lo tanto, lo mejor que puede hacer es aplicar constantemente actualizaciones de seguridad a su navegador.
BTW subir un archivo no requiere javascript. Los formularios HTML simples proporcionan la etiqueta <input type='file'>
que es suficiente para ello.
Lea otras preguntas en las etiquetas web-browser privacy javascript file-system file-upload