python - 如何制作基于 web 的 python 交互式 shell

标签 python security shell web

https://www.pythonanywhere.com/try-ipython/ 这样的网站如何?工作?

他们可能执行多个 exec 命令,或与 ipython 交互。

但是,如果他们没有采取任何“预防措施”(他们确实采取了),这可能会非常不安全。一个单纯的(和邪恶的)用户可以做类似的事情

import shutil, os

做坏事。

技术上 基于 web 的 python 交互式 shell 是如何实现的?以及如何确保交互式 shell 不会对提供商产生任何不利影响?

最佳答案

PythonAnywhere 开发者在这里。我们结合使用文件系统 jail 、低权限帐户、ulimit 限制和 cgroups 来沙盒人员。加上一些复杂的 iptables 路由。

我们将来可能会转向 LXC 或 Docker——我们根据 2012 年发布第一个系统版本时准备好生产的内容选择了现在使用的特定组合,并且它如果我们今天从头开始,我们会采取不同的方式。

这并不是说我们当前的系统不好——它确实运行良好。但这确实意味着它涉及很多代码,如果我们使用现在可用的东西,我们可以去掉这些代码,而且更简单的代码显然更好:-)

[编辑] 我还应该补充一点,你可能会发现 this talk I did at EuroPython有趣的。它没有涉及 shell 如何工作的安全方面,但它与您的问题主题(如何制作基于 web 的 Python 交互式 shell)相关,因为它涵盖了运行 shell 所需的一堆东西在浏览器中并将其连接到在服务器上运行的 Python 进程。

关于python - 如何制作基于 web 的 python 交互式 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22122290/

相关文章:

security - 如何保护 Amazon S3 URL

python - 函数返回中的映射与列表理解

Python:raw_input 读取数字的问题

python - SQLAlchemy 池连接关闭异常

php - 使用全局变量的网站安全

.net - 为什么我的 .net 计算的 MD5 哈希值不等于在网站上计算的哈希值?

python - 如何使用python请求修改本地存储

php - 如何安装供所有用户全局使用的 Python 包(包括 www-data)

ruby - 如何使用 Ruby 编写 shell 脚本?

php - shell_exec 不工作无法转换 pdftotext