我在某处读过Python的multiprocessing
内部使用Pickle,而来自未经身份验证的主机的Pickle数据并不安全。假设我在互联网上运行multiprocessing
服务器并使用弱密码保护,攻击者可以在密码被破坏时自动运行任意代码吗?
答案 0 :(得分:1)
是。如果攻击者可以发送服务器解码的基于pickle的有效负载,则攻击者可以在服务器上运行任意代码。
答案 1 :(得分:0)
如果您使用Python编写互联网服务或网络应用程序,则应在输入时始终检查(并在必要时清理或拒绝)传入数据。 在任何情况下应由应用程序按原样处理。
这与多处理无关;这不仅仅是酸洗/去除污染。如果您查看top-10 of web app vulnerabilities,您会看到注入(基本上无需检查即可解释传入数据)是网络应用中最常见的问题。
这可能是一个有点人为的例子,但仍然是对问题的一个很好的说明;
此外,尽可能隔离Web应用程序也是一个好主意。我建议在FreeBSD jail
或Linux上的docker容器中运行它。