我叫果冻 2023-05-07 10:00 采纳率: 56.5%
浏览 14
已结题

session-id是放在cookies中还是放在header中更安全

问题:session-id是放在cookies中还是放在header中更安全?在安全性能方面比较,那种方式更好

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-07 12:28
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/176016
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:cookie、session和sessionId
    • 除此之外, 这篇博客: Session的介绍与使用(顺带cookie和sessionId)中的 什么是Cookie? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    •  存在浏览器端的一个小型文本文件(用来存相关数据的)

    • 您还可以看一下 范宗敬老师的Cookie与Session的常用操作及其工作原理课程中的 cookie禁用后如何实现session二小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      为了更好地保证安全性和性能,建议将session ID放在HTTP cookie中。以下是具体原因和步骤:

      1. HTTP cookie是一种浏览器与Web服务器进行交互的标准技术。它可以将一些数据存储在用户浏览器中,这些数据会在Web服务器的响应中发送给浏览器,并在后续的请求中自动发送到Web服务器。由于HTTP cookie只存储在浏览器中,因此它可以提供一定的安全性保障,不能够被其他网站或者第三方插件所访问。

      2. 如果将session ID放在HTTP头中,虽然也可以在客户端和服务器之间传递数据,但是它可能容易被拦截或者截获,并被恶意用户用来攻击应用程序。为此,HTTP头通常只用于发送一些元数据信息,而不是用于存储数据。

      3. 如果使用HTTP cookie来存储session ID,可以通过以下步骤来实现:

      a. 在服务器端生成一个唯一的session ID,并将其存储在一个HTTP cookie中。

      b. 通过某种机制将该session ID与当前用户的参数或者请求相关的数据进行关联,并将其存储在服务器端进行后续的验证。

      c. 每当客户端向服务器发出请求时,Web服务器会从HTTP cookie中提取session ID,然后使用该session ID在服务器端检索相关的数据。

      1. 以下是一个示例代码,演示了如何在Spring Boot应用程序中使用HTTP cookie来存储session ID:

      a. 在请求验证码时,将生成的session ID存储在一个HTTP cookie中,并将其返回到浏览器中:

        ```
        response.addCookie(new Cookie(Constants.KAPTCHA_SESSION_KEY, request.getSession().getId()));
        ```
      

      b. 在登录时,从HTTP cookie中提取session ID,并将其用于在服务器端检索相关的数据:

        ```
        String sessionCode = "";
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                if (Constants.KAPTCHA_SESSION_KEY.equals(cookie.getName())) {
                    sessionCode = cookie.getValue();
                    break;
                }
            }
        }
        ```
      

      c. 使用获取到的session ID在服务器端检索相关的数据:

        ```
        User user = (User) request.getSession().getAttribute("user");
        ```
      

      通过将session ID存储在HTTP cookie中,可以提高应用程序的安全性和性能。具体来说,在保证用户隐私和数据安全的同时,可以减少与Web服务器的通信次数,从而提升应用程序的性能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月12日
  • 已采纳回答 8月4日
  • 创建了问题 5月7日

悬赏问题

  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题