2011-12-10 16 views
5

Vì Google NaCl là C++, tôi có thể truy cập hệ thống tệp bằng cách nào đó không? Điều đó khá cần thiết nếu tôi tạo trò chơi hoặc ứng dụng dành cho máy tính để bàn.Tôi có thể truy cập hệ thống tệp bằng Google NaCl không?

+0

Ngăn chặn một chương trình từ làm điều này là những gì NaCl là tất cả về. Bạn sẽ chỉ có quyền truy cập vào một khu vực lưu trữ cô lập của đĩa. Rất giống với đối tượng localStorage của HTML5. –

+1

@HansPassant Bạn có nghĩa là FileSystem của HTML5? localStorage khá khác nhau. Dù sao, vì vậy NaCl không cung cấp chức năng này. Sau đó, tôi đoán chúng ta cần phải chờ đợi một số lựa chọn thay thế khác. – Tower

+1

@rFactor HTML5 có thể đọc rõ ràng từ hệ thống tệp cục bộ, mặc dù người dùng phải chọn tệp từ hộp thoại "Mở". Để viết phải hoàn thành thao tác "Lưu dưới dạng ...". Nếu NaCl không có khả năng tự làm những điều này, nó có thể được gắn với HTML5 để cho nó làm điều đó. Các ví dụ cho thấy chúng truyền dữ liệu qua lại: https://developers.google.com/native-client/sdk/examples – HostileFork

Trả lời

1

Có, nhưng quyền truy cập này được cho là an toàn và chỉ có thể truy cập vào hệ thống tệp hộp cát. Rõ ràng bạn sẽ có thể thực hiện các cuộc gọi mmap. Điều gì có thể xảy ra? :-)

Ngoài bất kỳ tệp dữ liệu nào đi kèm với tệp tải xuống, hạn ngạch đĩa bổ sung là "đặc quyền ứng dụng", bạn phải "phê duyệt" khi bạn cài đặt thứ gì đó. Nó có thể nằm trong khoảng từ 0 đến không giới hạn.

+0

ActiveX đề cập đến là mất tập trung, tôi chỉnh sửa nó ra. Điểm là tôi nghĩ rằng "sandboxing" dịch vụ hệ thống thô thường được thực hiện kém ... có vấn đề bảo mật ngay cả trong máy ảo, nơi mà bạn có một máy chủ lưu trữ đám mây chạy nhiều dịch vụ của các tác giả khác nhau, họ có thể bị rò rỉ và hack từ một ảnh hưởng đến khác. Tôi đặt câu hỏi nếu một cái gì đó như thế này có thể được cả hai hoàn toàn * và * an toàn khi chạy trên hệ thống khách hàng ... đó là một hoặc khác, loại. Đó là tất cả về sự thỏa hiệp để đạt được "tính tự nhiên" cho các mục đích duyệt web, và tôi thấy không có thiết kế tuyệt vời ở đây. – HostileFork

+2

Câu trả lời và nhận xét của bạn là cảm giác khó chịu FUD, không phải sự thật. "Những người khác đã nhận được những điều sai trái, họ có thể đã làm quá" không hiệu quả. Tôi đề nghị bạn tiến hành triển khai, xem xét những gì các nhà nghiên cứu bảo mật đã làm với NaCl, đi qua các CVE cho nó. NaCl thậm chí còn trong chương trình tiền thưởng lỗi của Chrome, bạn sẽ được trả tiền nếu bạn tìm thấy lỗi. Câu trả lời của @ colt-mcanlis hữu ích hơn nhiều ở đây. –

+0

@JFBastien Không, sai. Đó là một quan sát về cái gì đó thực chất phức tạp hơn để bảo mật và trừu tượng. Có lẽ bạn nghĩ rằng đó là đào mà bây giờ tôi không thể đọc một bài báo trên web mà không cần JavaScript và gigabyte tải xuống và phần mềm gián điệp. Và có lẽ bạn là loại người không có vấn đề gì khi họ bị mắc kẹt trong "window.open()" - * họ thậm chí không thể có được quyền đó *. Tôi không nghĩ rằng đó là một ý tưởng tuyệt vời để cung cấp cho những người cùng mmap (bởi vì ... làm thế nào bạn thực hiện điều đó, làm thế nào bạn bảo vệ nó?), Và nói rằng "họ sẽ trả cho bạn cho mỗi lỗi" chỉ ra đó là bạn với vấn đề trong suy nghĩ - không phải I. – HostileFork

7

Do hạn chế về bảo mật, NaCl không cho phép bạn mở bất kỳ thư mục nào trên đĩa. Tuy nhiên,

Tính năng này cho phép truy cập hệ thống tệp được sandboxed, obfuscated.

Bạn có thể xem ví dụ PONG trong SDK mới nhất để biết các ví dụ về cách sử dụng FileSystemAPI.

Bên cạnh đó, trang này là một điểm khởi đầu tốt để hiểu cách hệ thống tập tin hoạt động: https://developers.google.com/native-client/beta-docs/fileIO

~ Main