【问题标题】:Jboss Seam Interpolator: could it be use for execute command (java.lang.Runtime.exec)?Jboss Seam Interpolator:它可以用于执行命令(java.lang.Runtime.exec)吗?
【发布时间】:2011-07-09 16:17:54
【问题描述】:

我的服务器在崩溃之前收到了这些奇怪的消息:

[ (org.jboss.seam.core.Interpolator)] exception interpolating string: #{(expressions.getClass().forName('java.lang.Runtime').getDeclaredMethods()[6]).invoke(expressions.getClass().forName('java.lang.Runtime')).exec('ls')}
javax.el.ELException: java.io.IOException: Cannot run program "ls": java.io.IOException: error=12, Cannot allocate memory

在我看来,有人试图通过 Interpolator 类执行某些操作。我从早期版本的 seam 中找到了这些代码:

http://www.java2s.com/Open-Source/Java-Document/JBoss/jboss-seam-2.1.0.A1/org/jboss/seam/core/Interpolator.java.htm

我找到了这些帖子

How to solve "java.io.IOException: error=12, Cannot allocate memory" calling Runtime#exec()?

但就我而言,我不是想解决它,我想限制它。

我可以通过安全管理器阻止系统执行吗? 你有什么建议可以防止这种执行吗?

提前致谢。

【问题讨论】:

    标签: java jboss seam runtime.exec


    【解决方案1】:

    您确定是您的代码试图在您的服务器上运行“ls”吗?如果没有,看起来有人试图利用 Seam 2 的this 问题。在这种情况下,您应该升级到 Seam 2.2.2.Final

    【讨论】:

    • 我几乎可以肯定这不是应用程序所必需的代码,但由于这是一个大项目,我必须咨询团队的其他成员。我们还将看到迁移到最新的稳定 2.x 分支的步骤,我们已经安排了它,但现在它将成为优先事项。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2013-07-14
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多