首页 > 其他分享 >httpservletrequest创建新会话/更改会话Id

httpservletrequest创建新会话/更改会话Id

时间:2023-11-29 19:46:02浏览次数:39  
标签:httpservletrequest 新会话 getSession 更改 创建 会话 Id

java httpservletrequest创建新会话/更改会话Id

10 月,2 周 Questions & Answers 79805

我正在维护一个Java web应用程序

查看登录代码,它通过HttpServletRequest的getSession()方法从HttpServletRequest获取HttpSession。(它在会话中使用一些值进行身份验证)

但是我担心会话固定攻击,所以在使用初始会话后,我想启动新会话或更改会话id。这可能吗

Tags:  

共 (2) 个答案

  1. # 1 楼答案

    Servlet3.0API不允许您更改现有会话上的会话id。通常,为了防止会话固定,您只需要创建一个新会话,并使旧会话无效

    您可以使这样的会话无效

    request.getSession(false).invalidate();
    

    然后使用创建一个新会话

    getSession(true)getSession()也应该可以)

    显然,如果会话中有要持久化的数据,则需要将其从第一个会话复制到第二个会话

    注意,对于会话固定保护,通常认为只要在身份验证请求上执行此操作就可以了。但是,更高级别的安全性包括丢弃旧会话,并为每个请求创建新会话

  2. # 2 楼答案

    由于JavaEE7和ServletAPI3.1(Tomcat8),您可以使用HttpServletRequest.changeSessionId()来实现这种行为。还有一个监听器HttpSessionIdListener,它将在每次更改后调用

原文链接:https://www.cnpython.com/java/372606

标签:httpservletrequest,新会话,getSession,更改,创建,会话,Id
From: https://www.cnblogs.com/sunny3158/p/17865674.html

相关文章

  • Servlet - 使用 changeSessionId() 改变SessionId 防止会话固定攻击
    Servlet-使用changeSessionId()改变SessionId防止会话固定攻击在会话固定攻击,黑客获取/设置(通过任何方式)另一个人的会话ID。然后,黑客可以冒充他人并获取敏感信息。JavaServlet3.1引入了以下HttpServletRequest方法:StringchangeSessionId()此方法将当前会话id更......
  • java 令牌解析_SpringSecurity 原理解析【4】:令牌还原与Session String changeSessio
    java令牌解析_SpringSecurity原理解析【4】:令牌还原与SessionStringchangeSessionId();//修改SessionIdSpringSecurity原理解析【4】:令牌还原与SessionSession:一般称为会话,不同环境中含义不同,在SpringSecurity中一个会话指:客户端从令牌认证请求到登出注销请求之间的......
  • 小惊喜继续-vscode插件小更新:基于文件名中的 PostId 关联博文
    在惊喜小现:园子的vscode插件的预热博文发布后,今天发布插件的一个小更新——基于文件名中包含的PostId关联博文。将本地文件与服务端博文进行关联是通过插件在vscode中管理博文的基础,当您在插件的“随便列表”中点击一篇博文,会自动在工作空间的目录中创建以博文标题命名的文......
  • IDEA插件:Apipost Helper使用
    Apipost-Helper是由Apipost推出的IDEA插件,写完接口可以进行快速调试,且支持搜索接口、根据method跳转接口,还支持生成标准的API文档,注意:这些操作都可以在代码编辑器内独立完成,非常好用!这里给大家介绍一下Apipost-Helper的安装和使用安装在IDEA编辑器插件中心输入Apipost搜索安装:......
  • 超好用的IDEA插件
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • 浏览器插件 Obsidian web 与 Obsidian 插件 local rest api 结合配置过程记录
    1.安装浏览器插件能到这里的肯定是已经有Obsidian了.首先要安装chrome浏览器插件Obsidianweb如图2.安装Obsidian上的插件插件名为localrestapi,如图3.设置浏览器插件配置对应的Obsidianweb中设置上localrestapi的信息,需要简单理解一下,就是......
  • Android-ActivityResultAPI
    Android-ActivityResultAPI1.推出目的如果你将项目中的appcompat库升级到1.3.0或更高的版本,你会发现startActivityForResult()方法已经被废弃了。现在更加建议使用ActivityResultAPI来实现在两个Activity之间交换数据的功能。2.传统写法-在两个Activity之间交换数据如......
  • Android踩坑小记-在onResume中申请权限
    Android踩坑小记-在onResume中申请权限最近遇见一个问题,在onResume中申请权限,比如申请定位权限,如下所示:@OverrideprotectedvoidonResume(){super.onResume();requestPermission();}@TargetApi(Build.VERSION_CODES.M)privatevoidr......
  • Android 两种方获取U盘的挂载路径
    第一种publicStringgetUsbPath(){try{StorageManagersm=(StorageManager)MyApplication.getContext().getSystemService(STORAGE_SERVICE);MethodgetVolumePathsMethod=StorageManager.class.getMethod("getVolumePaths&qu......
  • Android项目实战(六十七):自定义圆形进度条
    圆形进度条支持设置:1、圆环背景颜色2、圆管背景宽度3、进度圆环颜色4、进度圆环宽度5、圆环进度6、开始角度7、动画执行时间 自定义类:packagecom.example.mainactivty;importandroid.content.Context;importandroid.content.res.TypedArray;importandroid.......