2013-04-25 24 views
7

Tôi là một Noob hoàn chỉnh, vì vậy tôi xin lỗi nếu câu hỏi này có câu trả lời rõ ràng.Plugin được Sandboxed cho Node.js

Tôi đang tìm cách tạo ứng dụng web sẽ chạy plugin từ các nguồn không đáng tin cậy (tức là các lần gửi của cộng đồng). Vì vậy, tôi cần phải khóa các plugin đó vào một sandbox nơi chỉ cho phép truy cập nhất định (không thể ghi vào đĩa, v.v.). Lý tưởng nhất, plugin sẽ chỉ có thể sử dụng một số gói và API đã được phê duyệt nhất định.

Điều này có thể thực hiện được ở Nút không? Nếu có, bạn có thể chỉ cho tôi một gói hoặc tài liệu hướng dẫn để tôi bắt đầu không?

+0

Có một mô-đun được gọi là "nút-sandbox" trên github. Về cơ bản nó chạy mã không đáng tin cậy trong một tiến trình khác. Đây là IMO rất barebone nhưng nó có thể thực hiện công việc. Tôi thường đọc mã thực sự nhanh khi tôi tải xuống một mô-đun mới từ github để tìm những bất thường kỳ lạ và không bao giờ tìm thấy một mã duy nhất. Tôi biết đây không phải là tốt nhất kể từ khi thay đổi mã giữa các bản cập nhật nhưng tôi đoán chúng ta phải tin tưởng mọi người tại một số điểm. –

+0

Tôi không thể để nó tin tưởng trong trường hợp của mình, bởi vì tôi sẽ chấp nhận mã "tự động" làm bổ trợ. Vì vậy, tôi cần phải bảo vệ các ứng dụng cốt lõi từ các trình cắm thêm thù địch/kém được viết. Tôi sẽ xem xét hộp cát-nút. – RationalGeek

Trả lời

1

Tôi cũng sẽ đóng góp vào danh sách với thư viện của mình: https://github.com/asvd/jailed. Ngoài hộp cát của mã không đáng tin cậy (trong một tiến trình con bị hạn chế), nó cung cấp một cơ hội để xuất bất kỳ tập hợp hàm nào bên trong sandbox, do đó xác định một API tùy chỉnh cho mã hộp cát.