1
當使用openpyxl基於不可信輸入創建電子表格(例如,從Web應用程序爲管理員分析導出數據)時,公式可以是腳本注入的向量。如果excel在電子表格中執行惡意公式,他們可以接管管理員的機器或者過濾數據。阻止添加到openpyxl工作簿中的公式執行
例如,這個簡單的工作簿添加一個公式:
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]
如何將數據寫入工作表以確保它不被解釋爲公式?保留非日期和數字等非可執行數據的格式會比較方便,而不是將所有內容強制轉換爲字符串。