1

私のアプリケーションには、ユーザーがファイル (任意のファイル) をアップロードできるアップロード オプションが含まれています。ユーザーが Excel ワークシートにコード/スクリプトを記述できることを知っています。セキュリティ侵害につながる可能性があるため、それを防ぐにはどうすればよいですか。または、アップロードされたワークシートに関数が含まれていることを知るために、どのチェックを適用できますか?

4

1 に答える 1

0

Java タグから、シートがアップロードされるアプリケーションは Java アプリケーションであると想定しています。

を使用Apache POIすると、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 に答える