gpt4 book ai didi

java - 在 java 中转义 Shell 命令?

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:50 24 4
gpt4 key购买 nike

我有一个 web 服务,它将从经过身份验证的机器获取一些输入作为 XML(这是用于我正在与其他软件集成的网络管理系统)并执行一个 shell 脚本,其中一些 XML 数据作为参数。

在 Java(/Linux) 中,转义 shell 命令以确保某人无法将恶意参数传递到我的网络服务的最佳方法是什么?

基本上在一个极其简化的示例中,我通过 WS 接收一些输入

<foo>
<bar>ABCDEF</bar>
</foo>

then running somescript.pl <<data in <bar> field>> here

我需要确保这不能用于执行任意 shell 命令等。

谢谢!

最佳答案

我建议使用 ProcessBuilder 或 Runtime.exec 方法之一通过 shell 运行因此不需要 shell 转义 避免注入(inject)攻击(此处)。

考虑使用进程的 STDIN 管道传输 XML 数据也可能有益——Perl 可以轻松处理从 STDIN 读取数据。命令行参数通常有限制。

快乐编码。

关于java - 在 java 中转义 Shell 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com