goF*_*ard 4 python security shell web
https://www.pythonanywhere.com/try-ipython/等网站如何运作?
他们可能会做几个exec命令,或者与ipython接口.
然而,如果他们没有做任何"预防措施"(他们这样做),这可能是非常不安全的.仅仅(和邪恶的)用户可以做类似的事情
import shutil, os
Run Code Online (Sandbox Code Playgroud)
做坏事.
技术上怎么web based python interactive shell可能?如何确保交互式shell不会对提供商造成任何不良影响?
PythonAnywhere dev在这里.我们使用文件系统jail,低权限帐户,ulimit限制和cgroups组合沙盒人.加上一些复杂的iptables路由.
未来我们可能会转向LXC或Docker--我们选择了我们现在使用的特定组合,这些组合基于我们在2012年发布我们系统的第一个版本时的生产准备,如果我们是从今天开始,我们将采用不同的方式.
这并不是说我们目前的系统很糟糕 - 它运作得非常好.但它确实意味着它涉及很多代码,如果我们使用现在可用的东西我们可以剥离,更简单的代码显然更好:-)
[编辑]我还应该补充一点,你可能会发现我在EuroPython上做的这个话题很有趣.它没有涉及shell如何工作的安全方面,但它与你的问题的主题(如何制作基于Web的Python交互式shell)相关,因为它涵盖了运行shell所需的一堆东西.在浏览器中将其连接到服务器上运行的Python进程.