我明白,讓任何匿名用戶上傳任何類型的文件都是危險的,特別是如果它是代碼的話。不過,我有一個想法讓用戶將自定義AI腳本上傳到我的網站。我會提供模板,以便用戶可以在我用Python編寫的在線網絡遊戲中與其他AI進行競爭。我需要一種解決方案來確保用戶無法通過其上傳的腳本或客戶端執行遊戲的解決方案來危害任何其他文件或注入惡意代碼。有什麼建議麼? (我正在尋找一個可以和我的Python腳本一起工作的解決方案)讓用戶上傳用於執行的Python腳本
12
A
回答
0
爲用戶提供了廣泛的API並在上載時除去所有其他調用(例如導入語句)。此外,剝離與文件I/O有關的所有內容。
(你可能想要做多遍,以確保您沒有錯過任何東西。)
3
是的。
允許他們腳本他們的客戶端,而不是你的服務器。
8
8
使用PyPy你可以創建一個python沙箱。沙箱是一個單獨的,應該是安全的python環境,您可以在其中執行腳本。這裏更多信息
http://codespeak.net/pypy/dist/pypy/doc/sandbox.html
「理論上這是不可能做什麼壞事或從該提示閱讀機器上的隨機文件。」
「即使script.py來自某個隨機不受信任的源(例如,如果它由HTTP服務器完成),也可以安全地執行此操作。」
4
除了其他安全措施外,您還可以合併人工審查代碼。假設部分經驗正在審覈其他成員的解決方案,並且每個人都是Python開發人員,那麼在有一定數量的成員爲其投票之前,不要讓新代碼被激活。您的用戶不會批准惡意代碼。
1
PyPy在服務器端可能是一個不錯的選擇,但我會考慮讓你的python後端提供定義好的API和數據格式,並讓用戶在Javascript中實現AI和邏輯,以便它可以運行他們的瀏覽器因此,交互如下所示:對於每個match/turn/etc,以明確定義的格式將數據傳遞給瀏覽器,提供一個接收數據並可實現邏輯的JavaScript模板,並提供可由客戶端調用的Web API (瀏覽器)採取所需的操作。這樣您就不必擔心安全性或服務器功耗。
相關問題
- 1. 如何讓bash腳本使用特定的python版本來執行python腳本?
- 2. 腳本用於登錄用戶和執行另一個腳本
- 3. bash腳本,它執行一個提示用戶的python腳本
- 4. 執行Python腳本(計算機上讀取用戶數據) - NPAPI
- 5. 如何讓Python腳本在執行後運行powershell腳本
- 6. Python - 如何讓用戶使用庫運行腳本
- 7. 用subprocess.call使用shebang執行python腳本
- 8. 執行python腳本
- 9. 執行python腳本
- 10. 使用更多用戶執行腳本
- 11. 用Java執行未知的Python腳本
- 12. 執行腳本忽略用戶的PYTHONPATH
- 13. 執行腳本,而不是讓用戶訪問它
- 14. 用於文件上傳的自動腳本腳本不適用於硒腳本
- 15. 執行位於SFTP上的MySQL腳本
- 16. Python腳本用於基於腳本執行期間傳遞的自定義標記值來列出實例
- 17. 用plthon上傳python腳本的文件
- 18. 在python腳本中使用argparse執行python腳本
- 19. Python腳本的執行
- 20. 如何根據用戶輸入的字段執行Python腳本
- 21. 用於上傳的PHP腳本
- 22. 上傳和redownloading可執行腳本
- 23. 通過FTP上傳時執行腳本
- 24. Uploadify從不執行上傳腳本
- 25. 上傳腳本太長,無法執行
- 26. Heroku上傳和腳本執行限制
- 27. php不能用MySQLdb執行python腳本
- 28. 用java函數執行python腳本
- 29. 按鈕執行python腳本,使用jquery?
- 30. 執行bash腳本,定義使用Python
你的項目聽起來很酷。 – 2009-05-04 01:51:52
非常感謝大家的反饋 – AlbertoPL 2009-05-04 03:55:41
好項目!!!! – 2009-07-14 19:15:07