1

我的应用程序包含一个上传选项,用户可以从中上传文件(任何文件)。我知道用户有能力在 excel 工作表中编写代码/脚本。那么我该如何防止这种情况发生,因为它可能导致安全漏洞。或者我可以申请什么检查以知道上传的工作表包含任何功能?

4

1 回答 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 回答