私は、Javaでコマンドを実行するすべての方法を見つけようとしています。目標は、静的コード分析ツールとフィルターでブラックリストのキーワードリストを作成することです。
これまでのところ、ライブラリを使用しない別の方法が必要なため、正しくないように見えるRuntime.exec()しか見つかりませんでした。
ProcessBuilder も確認してください。しかし、rookが示すように、このアプローチはJavaに付随する微妙な脆弱性をすべて無視します。したがって、安全でないXML解析(XXEにつながる可能性があります)も必ず確認し、信頼できないオブジェクトの逆シリアル化(危険なVEEEEEEEEEEERY)を回避する必要があります。そして多分もっと。
プラットフォームとしてのJava、およびこのプラットフォームに惹かれた開発者は、どちらも素朴です。シェルはJavaエコシステム、特にWebアプリケーションで非常に一般的です。シェルが最も一般的な方法Javaアプリは次のとおりです(順序付けされていません):