Yab*_*rgo 14 java shell escaping
我有一个web服务,它将从经过身份验证的计算机上获取一些输入作为XML(这是我与其他软件集成的网络管理系统)并执行带有一些XML数据作为参数的shell脚本.
在Java(/ Linux)中,逃避shell命令以确保某人无法将恶意参数传递给我的Web服务的最佳方法是什么?
基本上在一个极其简化的例子中,我在via WS中输入了一些内容
<foo>
<bar>ABCDEF</bar>
</foo>
then running somescript.pl <<data in <bar> field>> here
Run Code Online (Sandbox Code Playgroud)
我需要确保这不能用于执行任意shell命令等.
谢谢!
小智 12
我建议使用ProcessBuilder或其中一个不通过shell运行的Runtime.exec方法,因此不需要shell转义以避免注入攻击(此处).
ProcessBuilder - 比以上更灵活Runtime.exec.
Runtime.exec(String []) - 与仅采用a的表单不同String
考虑使用进程的STDIN管道来传输XML数据也是有益的 - Perl可以轻松地处理从STDIN读取.命令行参数通常有限制.
快乐的编码.
| 归档时间: |
|
| 查看次数: |
5529 次 |
| 最近记录: |