我明白,让任何匿名用户上传任何类型的文件都是危险的,特别是如果它是代码的话。不过,我有一个想法让用户将自定义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