在tarfile.extractall的文档中,它说
切勿在未事先检查的情况下从不受信任的来源提取档案。文件可能是在路径之外创建的,例如具有以“/”开头的绝对文件名或具有两个点“..”的文件名的成员。
网络或stackoverflow上的一些帖子解决了这些漏洞,但是,我仍然可以想到另一个案例,例如:一个包含以下两个文件的tarball:
A --> /etc
A/passwd
条目A
是一个符号链接,A
下的所有内容都将重定向到/etc
,而网络上的大多数解决方案都无法检测到这些内容。
我的问题是,除此之外,可能还有一些我忽略的漏洞,所以即使我有一段处理这个问题的代码,它仍然可能不安全。是否有一个成熟的Python库可以安全地提取tarball?