当前位置: 首页 > 知识库问答 >
问题:

是否可以使用客户端漏洞查看HttpSession属性?

文建业
2023-03-14

我最近开始维护一个在线系统。它在前端使用JSF,前端使用PrimeFaces,后端使用Java。JSF对我来说是一种新技术。

xhtml

<p:inputText id="username" value="#{userBean.userName}" name="username"></p:inputText>
<p:password id="password" value="#{userBean.password}"></p:password>
<p:commandButton id="loginSubmit" value="Login" action="#{userBean.auth}"></p:commandButton>

UserBean.java

@ManagedBean(name = "userBean")
@SessionScoped
public class UserBean {
    public String auth() {
        // ...
        FacesContext fctx = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) fctx.getExternalContext().getSession(true);
        HashMap<Long, UserDetail> usersMap = dbBean.getAllUserDetails();
        session.setAttribute("usersMap", usersMap);
        // ...
    }
}

共有1个答案

公冶光亮
2023-03-14

虽然评论回答了你的问题,但让我们总结一下:

  • 会话存储在服务器端,任何客户端黑客都无法访问这些数据,除非它利用JSF入侵的安全缺陷,这是非常罕见的
  • 如果黑客能够攻击服务器组件,那么只要用户数据没有存储在用户会话中,他就一定能够从数据库访问用户数据
  • 您的担忧是可以理解的,但您应该关注用户代码缺陷或已知库缺陷,而不是应用程序设计
 类似资料:
  • 问题内容: Node.js是否可以一一处理客户端请求?我有一个项目,正在使用Node.js作为服务器端代理。根据我的理解,如果您使用回调进行响应,那么Node.js应该立即响应新请求,但是实际上Node.js直到完成上一个回调后才会响应新请求。这是正确的操作还是代码使用有误?请帮我。非常感谢你。以下是用于将请求重新发送到后端服务的代码。 更新: 客户端请求来自Angular 。在一页上,同时有多个

  • 正如我们在新闻中看到的,针对流行的库报告了一个新的零日漏洞,该漏洞允许攻击者远程执行代码。在我们的应用程序中,我们仍然使用以下依赖项。 是否仅针对报告该问题?或适用于版本是否也是?是否有测试该漏洞的示例代码?

  • 问题内容: 我正在启动一个使用Java实现的Restful架构的项目(使用新的JAX-RS标准) 我们计划使用Flex应用程序开发GUI。我已经发现使用HTTPService组件实现此问题(响应错误代码,标头访问…)。 你们中的任何一个在类似项目中都有一些经验。可行吗 问题答案: 这里的问题是,围绕此问题的许多网络讨论都已经有一年或更久的历史了。我现在正在做同样的研究,这就是我今天所学到的。 Jo

  • 我正在尝试通过设置“use.async.http.管道”属性来利用 CXF 异步 HTTP 客户端传输,如本线程中所述,并由这篇 CXF 文章推荐。 我使用以下代码执行此操作: 上面的异常堆栈表明类仍在使用中,并且根据 CXF 文档,该设置尚未生效。 我试图弄清楚的是,如何确保“use.async.http.conduct”生效,即是否存在可以测试的特定行为,或者我可以在客户端上启用的特定日志配置

  • 运行 php start.php status能看到当前服务器的WorkerMan运行的状态,connections字段标记了每个进程当前TCP连接数。需要注意的是这个字段不仅包括客户端的TCP连接数,也包括WorkerMan内部通讯的TCP连接数。例如WorkerMan中的Gateway/Worker模型中,每个Gateway进程当前的客户端连接数为connections字段的值减去Worker

  • 我使用的是带有Scala 2.12的Databricks群集版本7.3 LTS。这个版本确实使用Log4J。 官方文件说它使用Log4J版本。这是否意味着我没有这个漏洞?如果我这样做了,我可以在集群上手动修补它,还是需要将集群升级到下一个LTS版本?