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