gpt4 book ai didi

python - 阻止执行添加到 openpyxl 工作簿的公式

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:18 27 4
gpt4 key购买 nike

当使用 openpyxl 基于不受信任的输入创建电子表格(例如,从 Web 应用程序导出数据以进行管理分析)时,公式可以作为脚本注入(inject)的向量。如果 Excel 在电子表格中执行恶意公式,它们就可以接管管理员的计算机或窃取数据。

例如,这个简单的工作簿添加了一个公式:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active()
ws.append(["=1 + 2"])
ws.save(filename='/tmp/formula.xlsx')

在Excel中打开/tmp/formula.xlsx时,会执行公式。 =1 + 2 是良性的,但也可能是更邪恶的东西,例如 =2+5+cmd|'/C calc'!A0[reference]

如何将数据写入工作表以确保它不会被解释为公式?保留日期和数字等不可执行数据的格式会很方便,而不是将所有内容强制为字符串。

最佳答案

你说得对,代码注入(inject)是一种风险,尽管可以说 Excel 的工作就是在这里进行沙箱处理,如果你担心这一点,那么你真的应该考虑额外的保护措施。

我们确实公开了工作簿设置的calculation节点,因此我认为更改wb.calculation.fullCalcOnLoad = False可能确实需要您的需要。但您可能需要阅读规范才能确定。

关于python - 阻止执行添加到 openpyxl 工作簿的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46670955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com