Chúng tôi đang thiết kế một bản ghi trực tuyến cho các trò chơi HTML5. Người dùng có thể tải lên tệp zip chứa trò chơi của họ.Rủi ro trong việc cho phép người dùng tải lên các tệp HTML/JS
On upload, zip được giải nén bởi máy chủ và mỗi tập tin được looped kiểm tra đó là mở rộng đối với một danh sách trắng cho phép:
- .html
- .js
- .png
- . jpg
- .appcache
- .m4a
- .ogg
(Trò chơi phải được thực hiện trong trình chỉnh sửa trò chơi của chúng tôi để xuất các tệp đó). Điều này sẽ ngăn mọi người tải lên các tệp nén, tệp tập lệnh phía máy chủ, v.v.
Sau đó, trò chơi sẽ được chuyển sang miền không nấu tĩnh của chúng tôi (scirra.net). Khi trò chơi được chơi trên trang scirra.com của chúng tôi, trò chơi được hiển thị trong khung nội tuyến trỏ đến miền scirra.net. Điều này sẽ ngăn chặn JS độc hại truy cập cookie scirra.com.
Kỹ thuật iframe này và danh sách cho phép có đủ toàn diện để ngăn chặn bất kỳ điều gì độc hại được thực hiện không? Lưu ý rằng chúng tôi không thể thực sự kiểm tra từng tệp JS để chúng tôi giả sử mọi người sẽ thử tải lên JS độc hại.
tôi biết điều này có thể gây ra một số lỗi, nhưng bạn cần quy trình phê duyệt giống như táo. –
Tôi nghĩ nó cũng phụ thuộc vào loại bảo mật mà bạn quan tâm. Bạn chỉ quan tâm đến việc bảo vệ máy chủ của mình hay bạn cũng quan tâm đến việc chắc chắn rằng bạn không lưu trữ mã độc hại cho người chơi trò chơi của mình. Nếu bạn đang xem xét cả hai trường hợp, sau đó bạn có thể phải làm một công việc nhiều hơn để xác minh rằng người dùng không crafting (ngay cả trong trình soạn thảo của bạn) một số JavaScript crafty có thể khai thác các game thủ. – RLH
@ Daniel, nó không thực sự thực tế đối với chúng tôi. Chúng tôi có lượng khán giả đông đảo những người muốn sử dụng điều này và muốn có một cách để sandbox mỗi trò chơi để nó an toàn. Tôi chỉ thực sự tự hỏi nếu một JS chạy trong một khung trên một tên miền khác nhau có thể làm bất kỳ thiệt hại. –