Tôi mới sử dụng V8 và có kế hoạch sử dụng nó trong ứng dụng web python. Mục đích là để cho phép người dùng gửi và thực thi một số tập lệnh JS nhất định. Rõ ràng đây là một mối đe dọa an ninh vì vậy tôi đang tìm kiếm các nguồn tài liệu mà các tài liệu một cách có thể 'khóa xuống' v8. Ví dụ, tôi có thể tạo một danh sách trắng các chức năng được phép gọi không? Hoặc danh sách đen các thư viện không được phép tham chiếu?Làm cách nào để "Khóa xuống" V8?
Trả lời
Chỉ đơn giản là khóa xuống trường hợp V8 (ví dụ: cho nó không có quyền trong chroot) và giết chết quá trình nếu nó không trở lại sau một khoảng thời gian nhất định không hoạt động?
Nếu bạn sử dụng một động cơ V8 đơn giản (nghĩa là không giống như node.js) sẽ không có bất kỳ chức năng nguy hiểm nào. Bản thân JavaScript không có chức năng hệ thống tập tin chứa chuẩn, vv ..
Điều duy nhất người dùng độc hại có thể làm là tạo vòng lặp vô hạn, thu thập sâu và bộ nhớ.
Xin lỗi vì nhận xét muộn, nhưng tôi cũng quan tâm đến điều này. Làm cách nào để ngăn người dùng vượt quá hạn mức bộ nhớ/xử lý? – slezica
Không có ý tưởng. Vui lòng [đăng câu hỏi mới] (http://stackoverflow.com/questions/ask) cho việc này. – ThiefMaster
Tôi vừa đăng câu hỏi mới về vấn đề này: http://stackoverflow.com/questions/11637075/how-do-i-prevent-malicious-javascript-in-v8-with-python – Gattster
- 1. Làm cách nào để sử dụng v8 trong chuỗi?
- 2. Làm cách nào để tải xuống jQuery?
- 3. Tôi làm cách nào để mở khóa khóa FileStream?
- 4. Làm thế nào để biết khóa chèn đã được giữ xuống
- 5. setTimeout và V8
- 6. Làm cách nào để tải xuống ảnh bằng Ruby?
- 7. Làm cách nào để tải xuống nguồn cho BIRT?
- 8. Làm cách nào để buộc grails tải xuống tệp csv?
- 9. Làm cách nào để tải xuống đúng AppDomain bằng C#?
- 10. Làm cách nào để tránh XSS trong tải xuống HTML?
- 11. Làm cách nào để tải xuống từ gitorious?
- 12. Làm cách nào để tải xuống tệp zip trong C#?
- 13. Làm cách nào để tải xuống nguồn HTML trong C#
- 14. Làm cách nào để cuộn một RichTextBox xuống dưới cùng?
- 15. Làm cách nào để cuộn xuống cuối ListBox?
- 16. Làm cách nào để tải xuống một JAR bằng Maven?
- 17. Làm cách nào để tải xuống bản giới thiệu PrimeFaces?
- 18. Làm cách nào để tự động tải xuống tệp javascript?
- 19. Làm cách nào để tải xuống Tệp từ EC2
- 20. Làm cách nào để tạo hiệu ứng thả xuống MKAnnotationView?
- 21. php - Làm cách nào để tải xuống tệp?
- 22. Làm cách nào để cài đặt công cụ độc lập v8 javascript của Google để gỡ lỗi từ xa?
- 23. Làm thế nào để biến javascript được biên dịch V8 thành EXE?
- 24. "Hello World" + JS V8 + VS2010
- 25. Làm thế nào để bạn bao gồm một tệp js khác trong v8 của Google?
- 26. Cách để làm nổi các phao xuống
- 27. Làm thế nào để thiết lập tùy chọn trong v8 Node.js
- 28. Làm cách nào để lấy khóa từ ContentValues?
- 29. Làm cách nào để thả khóa ngoại trong SQL Server?
- 30. Làm cách nào để khóa băng chuyền trong Sencha Touch
BTW tại sao không cho phép họ gửi tập lệnh Python? Điều này sẽ đơn giản hóa kiến trúc của bạn một chút tôi nghĩ. :-) (Đã đề cập đến nó). Và có, có thể tạo một hộp cát Python an toàn cho các tập lệnh đó – Kos
@Kos như thế nào? Tôi cũng quan tâm, nhưng tôi tiếp tục đọc ở khắp mọi nơi mà Python gần như không thể đóng hộp, với hàng nghìn ví dụ về cách phá vỡ – slezica