我的应用程序包含一个上传选项,用户可以从中上传文件(任何文件)。我知道用户有能力在 excel 工作表中编写代码/脚本。那么我该如何防止这种情况发生,因为它可能导致安全漏洞。或者我可以申请什么检查以知道上传的工作表包含任何功能?
问问题
147 次
1 回答
0
我从 Java 标记中假设您将工作表上传到的应用程序是 Java 应用程序。
使用Apache POI
,您可以使用 a POIFSReader
(请参阅此文档)在较低级别读取文件。
Réal Gagnon 提供了一个示例,它显示了如何通过查看名称来检查内容。
我不得不修改监听器(添加了另一个比较)
class MacroListener implements POIFSReaderListener {
[...]
@Override
public void processPOIFSReaderEvent(POIFSReaderEvent event) {
System.out.println(" Event: Name " + event.getName() + ", path "
+ event.getPath());
if (event.getPath().toString().startsWith("\\Macros")
|| event.getPath().toString().startsWith("\\_VBA")
|| event.getPath().toString().contains("_VBA_")) {
this.macroDetected = true;
}
}
}
以便它适用于一些测试文件。您可能需要调整/扩展检查。
于 2013-07-05T09:52:50.787 回答