wildfly 8.x中的受保护视图是否有缺陷?

时间:2015-11-07 15:55:43

标签: security jsf jsf-2.2 wildfly-8 protected-views

在JSF 2.2中引入了新的<f:viewAction>组件,更重要的是它与CSRF攻击一起保护利用此功能的页面。

JSF 2.2规范中提到了该功能:

  

调用 ViewHandler.getProtectedViewsUnmodifiable()以确定此viewId的视图是否受保护。如果不,   假设所请求的视图未受保护,并且不采取其他视图保护步骤。获得的价值   请求参数的值,其名称由值的值给出   ResponseStateManager.NON_POSTBACK_VIEW_TOKEN_PARAM。如果没有价值,请抛出   ProtectedViewException。如果该值存在,请将其与返回值进行比较   的 ResponseStateManager.getCryptographicallyStrongTokenFromSession()即可。如果值不匹配,则抛出   ProtectedViewException。   ...

让我感到好奇的是,在Mojarra中生成的 getCryptographicallyStrongTokenFromSession()方法使用的令牌是怎样的,因为这是我们用于某些应用程序的JSF实现。 我很惊讶地发现在 2.2.11 之前版本中的实现看起来像这样:

private String createCryptographicallyStrongToken() {
        // PENDING: http://java.net/jira/browse/JAVASERVERFACES-2204
        String result = "" + System.currentTimeMillis();

        return result;
    }

从版本2.2.11开始,它似乎更加强大,而currentTimeMill实际上是使用AES加密的。

由于此实现的非加密版本已进入Wildfly 8.x服务器的最终版本(8.0.0.Final,8.1.0.Final,8.2.0.Final和8.2.1。最终)是否意味着部署在这些服务器上并依赖<protected-views>功能的应用程序容易受到攻击?

0 个答案:

没有答案