web-dev-qa-db-ja.com

Java Runtime.execを使用しないコマンド実行

私は、Javaでコマンドを実行するすべての方法を見つけようとしています。目標は、静的コード分析ツールとフィルターでブラックリストのキーワードリストを作成することです。

これまでのところ、ライブラリを使用しない別の方法が必要なため、正しくないように見えるRuntime.exec()しか見つかりませんでした。

3
ndp

ProcessBuilder も確認してください。しかし、rookが示すように、このアプローチはJavaに付随する微妙な脆弱性をすべて無視します。したがって、安全でないXML解析(XXEにつながる可能性があります)も必ず確認し、信頼できないオブジェクトの逆シリアル化(危険なVEEEEEEEEEEERY)を回避する必要があります。そして多分もっと。

2
kaidentity

プラットフォームとしてのJava、およびこのプラットフォームに惹かれた開発者は、どちらも素朴です。シェルはJavaエコシステム、特にWebアプリケーションで非常に一般的です。シェルが最も一般的な方法Javaアプリは次のとおりです(順序付けされていません):

2
rook