gpt4 book ai didi

java - 如何作为 Web 服务安全地执行 shell 命令

转载 作者:行者123 更新时间:2023-12-01 07:13:19 29 4
gpt4 key购买 nike

所以我遇到了安全困境。

基本上,我正在做的是为“定理证明者的数千个问题”应用程序提供基于网络的翻译服务。我拿了一份写在 PSOA RuleML 的文档语言并将其翻译成TPTP-FOF .

为了演示此翻译,我想提供两个 RESTful Web 服务。一个用于翻译 PSOA RuleML,另一个用于提供推理 ( initial report )。

第一个服务使用 Java/ANTLR3/RestEasy,第二个服务使用 Java/ApacheCommonsExec 根据定理证明器测试从第一个服务返回的生成的 TPTP 字符串。

Apache Commons Exec 是否提供足够的安全性来执行此操作?我意识到还有其他明显的解决方案,例如组成服务,以确保仅测试 TPTP FOF 语句。但如果可能的话,我想将这个定理证明本身作为一个网络服务来公开,如果有任何想法的话。提前致谢!

最佳答案

我使用过 ApacheCommonsExec,但不是用于 Web 应用程序。它“足够安全”,可以满足我的需求。

最安全的选择是永远不要将任何字符串参数直接从 Web 传递到 exec 进程。如果您可以使用最终常量或枚举,您的安全性将大大提高。

除此之外,您还需要仔细清理并转义所传递的任何命令文字。在不知道您所在的确切系统(Windows/Linux/等)的情况下,这将根据平台而变化。我的建议是寻找一个可以为您做到这一点的图书馆。

最后,在打开 Java 安全管理器的情况下运行。这可能会破坏 ApacheCommonsExec,但您应该能够解决这些问题。

关于java - 如何作为 Web 服务安全地执行 shell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502159/

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