gpt4 book ai didi

java - 寻找使用 servlet 和 JSP 的简单、安全的 session 设计

转载 作者:行者123 更新时间:2023-11-30 06:00:10 25 4
gpt4 key购买 nike

我正在开发一个仅限 Intranet 的 Web 应用程序 (J2EE),它需要一些基本的安全功能。该网站的授权用户相对较少,但我仍然需要实现某种安全 session 。

我正在查看的基本流程是访问站点=>登录=>使用站点=>完成后注销(或在浏览器关闭时自动注销)。没有什么特别的,甚至没有登录时的“记住我”选项。大多数身份验证工作已经完成 - 该网站只能通过 https 访问,并且我有一个存储用户名和(加密)密码的数据库。

那么,一旦用户登录,实现安全 session 的最简单方法是什么(理想情况下,除了 JBoss/JSP 在幕后执行的操作之外,没有 cookie)? IE。防止用户直接请求登录屏幕之外的页面等。

是否只是检查 session 中是否存在类似“isUserAuthenticated”的值,检查 servlet 中所有传入请求的 session 是否存在(例如 request.getSession(false))?如何阻止用户获取 JSP 文件并强制他们对所有请求使用 servlet?还有其他考虑因素(及其解决方案)吗?

最佳答案

听起来您可以使用简单的声明性安全方法。

查看 Securing Web Applications 的 Java EE 教程部分,特别是在 declarative security部分

解决您的具体问题:

What's the simplest ... way to implement a secure session? I.E. prevent users from just directly requesting pages beyond the login screen, etc.

使用适当的安全角色在 web 应用程序描述符 (web.xml) 中声明您的 URL。未经授权的用户将无法访问它们(尝试访问它们将弹出登录页面)。

Is it just a matter of checking the session for some "isUserAuthenticated"-like value, checking that the session exists (e.g. request.getSession(false)) for all incoming requests in my servlet?

所有这些都是完全没有必要的; servlet 容器将在幕后为您完成此操作。

What about preventing users from getting JSP files and forcing them to use a servlet for all requests?

只要 JSP 永远不需要公开访问(例如,您从 servlet 内转发到它们;您永远不会重定向到 JSP),您就可以在集合中声明它们的 URL具有从未实际分配给用户的安全角色。

关于java - 寻找使用 servlet 和 JSP 的简单、安全的 session 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1765222/

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