2011-12-10 20 views
5

Dado que Google NaCl es C++, ¿podré acceder al sistema de archivos de alguna manera? Eso es bastante necesario si tengo que crear un juego o una aplicación de escritorio.¿Puedo acceder al sistema de archivos con Google NaCl?

+0

La prevención de un programa de hacer esto es lo que tiene que ver con NaCl. Solo tendrá acceso a un área de almacenamiento aislada del disco. Muy similar al objeto localStorage de HTML5. –

+1

@HansPassant ¿Quiere decir FileSystem de HTML5? localStorage es bastante diferente. De todos modos, NaCl no proporciona esta funcionalidad. Entonces supongo que tenemos que esperar otras alternativas. – Tower

+1

@rFactor HTML5 aparentemente puede leer desde el sistema de archivos local, aunque el usuario debe elegir el archivo desde un cuadro de diálogo "Abrir". Para escribir debe completar una operación "Guardar como ...". Si NaCl no tiene la capacidad de hacer estas cosas por sí mismo, puede estar vinculado a HTML5 para que lo haga. Los ejemplos muestran que pasan datos de ida y vuelta: https://developers.google.com/native-client/sdk/examples – HostileFork

Respuesta

1

Sí, pero este acceso es supuestamente seguro y solo puede acceder a un sistema de archivos de espacio aislado. Aparentemente, podrás hacer mmap llamadas, incluso. ¿Qué puede salir mal? :-)

Más allá de los archivos de datos que vienen con la descarga, la cuota de disco adicional es un "privilegio de la aplicación" que debe "aprobar" cuando instala algo. Puede ir de 0 a ilimitado.

+0

La mención de ActiveX es una distracción, la edité. El punto es que creo que los "sandboxing" los servicios del sistema raw a menudo se hacen mal ... hay problemas de seguridad incluso en máquinas virtuales, donde si tienes un host en la nube ejecutando múltiples servicios de diferentes autores, pueden filtrarse y los ataques de uno afectan al otro. Me pregunto si algo como esto puede ser completo * y * seguro cuando se ejecuta en sistemas cliente ... es uno o el otro, más o menos. Todo se trata de compromisos para lograr el "nativo" con fines de exploración, y no veo ningún gran diseño aquí. – HostileFork

+2

Su respuesta y comentario son viscerales FUD, no hechos. "Otros entendieron mal, probablemente también lo hicieron" no es productivo. Sugiero que profundices en la implementación, mira lo que los investigadores de seguridad han hecho con NaCl, revisa los CVE para ello. NaCl está incluso en el programa de recompensas por errores de Chrome, te pagarían si encontraras defectos. La respuesta de @colt-mcanlis es mucho más útil aquí. –

+0

@JFBastien No, mal. Es una observación sobre algo que es intrínsecamente más complejo de asegurar y abstracto. Tal vez piense que es color de rosa que ahora no puedo leer un artículo en la web sin JavaScript y gigabytes de descargas y spyware. Y tal vez eres el tipo de persona que no tuvo ningún problema cuando se metieron en "window.open()" - * ni siquiera pueden hacerlo bien *. No creo que sea una buena idea darles a esas mismas personas mmap (porque ... ¿cómo estás implementando eso? ¿Cómo lo estás asegurando?) Y diciendo "te pagarán por cada error" indica que eres tú quien problema en pensar, no yo – HostileFork

7

Debido a restricciones de seguridad, NaCl no le permite abrir ninguna carpeta en el disco.

Sin embargo, otorga la capacidad de acceder a un sistema de archivos enmascarado y ofuscado.

Puede ver el ejemplo de PONG en el último SDK para ver ejemplos de cómo usar FileSystemAPI.

Además, esta página es un buen punto de partida para entender cómo funciona el sistema de archivos: https://developers.google.com/native-client/beta-docs/fileIO

~ principal

Cuestiones relacionadas