我是V8的新手,並計劃在Python Web應用程序中使用它。目的是讓用戶提交和執行某些JS腳本。顯然這是一個安全威脅,所以我正在尋找資源來記錄可能會「鎖定」v8的方式。例如,我可以創建一個允許被調用的函數的白名單嗎?或者不允許引用圖書館黑名單?如何「鎖定」V8?
回答
只會鎖定下來V8實例(即:給它沒有權限在chroot)和殺害如果沒有一定的時間不工作後返回的過程?
如果使用普通的V8(即不是像node.js的)不會有任何危險的功能。 JavaScript的本身沒有包含文件系統的功能等
惡意用戶可以做的是創造無限循環,深遞歸和內存生豬唯一一個STDLIB。
對不起,我遲到評論一千例子,但我感興趣的是這一點。如何防止用戶超出內存/處理配額? – slezica 2012-05-01 10:24:52
不知道。請[發表一個新的問題](http://stackoverflow.com/questions/ask)。 – ThiefMaster 2012-05-01 11:24:20
我剛剛發佈關於該新的問題:http://stackoverflow.com/questions/11637075/how-do-i-prevent-malicious-javascript-in-v8-with-python – Gattster 2012-07-24 18:30:02
- 1. V8如何將v8 :: Persistent <v8 :: Primitive>轉換爲v8 :: Primitive?
- 2. v8範圍界定如何工作?
- 3. Heroku + Rails錯誤:「進入V8 API沒有正確鎖定到位」
- 4. 如何鎖定JFrame?
- 5. 如何鎖定svn
- 6. 如何解鎖鎖定的位圖
- 7. jqGrid:如何鎖定和解鎖網格?
- 8. 如何解鎖鎖定屏幕?
- 9. 如何鎖定和解鎖jqGrid?
- 10. 的Cocos2D MenuLevel如何鎖定,解鎖
- 11. 如何確定v8 :: Object是否是一個v8 :: TypedArray和它是哪一個
- 12. 如何使用自定義修改的v8 :: Arguments調用v8 ::函數?
- 13. 如何填充v8數組?
- 14. 如何拼合V8 ConsString?
- 15. 如何鏈接到V8?
- 16. 如何爲armv7構建V8
- 17. 如何處理鎖定(JPA)?
- 18. 如何被鎖定時
- 19. PHP中session_start如何鎖定?
- 20. 如何實現鎖定?
- 21. 如何鎖定屏幕?
- 22. C#如何鎖定文件
- 23. 如何鎖定字典?
- 24. 如何鎖定NFC標籤?
- 25. 如何鎖定文本框?
- 26. WCF服務如何鎖定?
- 27. 如何在javascript中鎖定
- 28. 如何鎖定系統?
- 29. 如何鎖定屏幕Android
- 30. 如何鎖定Dreamweaver模板
順便說一句,爲什麼不讓他們提交Python腳本?這可以簡化你的架構,我想。 :-)(不得不提及它)。是的,可以爲這些腳本創建一個安全的Python沙盒 – Kos 2012-03-19 11:15:14
@Kos怎麼樣?我有興趣爲好,但我繼續閱讀無處不在Python是近unsandboxable,對如何打破 – slezica 2012-05-17 02:29:21