gpt4 book ai didi

java - 如何在 JSF 页面上禁用 #{session}?

转载 作者:行者123 更新时间:2023-12-04 05:02:42 24 4
gpt4 key购买 nike

我正在使用 JSF 2.2。我正在尝试将 JSF 用作纯模板语言。然而,有一个问题。在我的环境中创建 JSF 页面的任何用户都可以执行以下操作:

#{session.getAttribute('user').getApiKey()}

在这里,我有一个存储在 session 中的用户对象,而 getApiKey() 方法是该类中的一个 getter。

是否有“web.xml”配置或其他一些技巧可用于在 JSF 页面上完全禁用 session 对象?

最佳答案

Is there 'web.xml' configuration or some other trick that I can use to disable session object completely on a JSF page?



没有。

根据允许的标签、属性和 EL 表达式的白名单手动解析模板(注意:不要使用黑名单,黑客会找到您无法想象的方法)。例如,以下表达式与 #{session.getAttribute('user').getApiKey()} 的效果相同:
  • #{request.session.getAttribute('user').apiKey}
  • #{sessionScope.user.apiKey}
  • #{user.apiKey}
  • #{facesContext.externalContext.sessionMap.user.apiKey}
  • #{facesContext.externalContext.session.getAttribute('user').apiKey}

  • 毕竟,JSF/Facelets 可能是错误的工具,用于为客户端提供某种将在服务器中执行的模板。宁可找 BB/ Wiki/ Markdown -like 标记或 whitelisted HTML您通过 <h:outputText escape="false"> 显示的内容.

    关于java - 如何在 JSF 页面上禁用 #{session}?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936004/

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