【问题标题】:Can session variables be modified by a hacker?会话变量可以被黑客修改吗?
【发布时间】:2020-12-13 00:02:13
【问题描述】:

我正在使用spring mvc 开发一个网络应用程序。我将关于我的用户的个人资料数据放在一个 session 变量中。

    for( AdminProfil ap : admin.getAdminProfils()){
        
        if(ap.getProfil().getNomProfil().equals("root")){
            session.setAttribute( "root", true );
        }
        else if(ap.getProfil().getNomProfil().equals("saisie")){
            session.setAttribute( "saisie", true );
        }
        else if(ap.getProfil().getNomProfil().equals("controle")){
            session.setAttribute( "controle", true );
        }
        else if(ap.getProfil().getNomProfil().equals("validation")){
            session.setAttribute( "validation", true );
        }
        
    }

在我的jsp 页面中:

                <c:if test="${ sessionScope['saisie']  }">
                    ......
                </c:if>
  1. 我想知道session 变量是否可以被以下之一修改 我的用户或其他想要破解我的网络应用程序的人?
  2. 如果可以修改会话,我可以使用哪些其他解决方案来阻止用户更改其个人资料?
  3. 在我的情况下可以使用会话变量还是使用 cookie 更好?

【问题讨论】:

  • 这是骗人的? stackoverflow.com/questions/3798532/can-session-value-be-hacked(这里提到了一个缺陷——如果你向别人的计算机发送一些东西,那台计算机几乎可以用你发送的数据做它想做的事情——包括忽略 cookie 超时......)
  • 如果您的问题是“用户能否修改会话中存储的数据”,答案是否定的。会话存储在服务器中,其内容不会发送到客户端。仅在 cookie 中向客户端发送会话 ID。
  • 谢谢,但我的问题的第三点呢?在我的情况下,在会话中存储数据比 cookie 更好?
  • 第三点是使用和误用。如果用户数据很小,那很好。如果您使用大量用户数据(包括照片和视频)污染会话,则 tomcat 可能会因 OOM 而退出。

标签: java spring session spring-mvc


【解决方案1】:

我想知道会话变量是否可以被我的一个修改 想要破解我的网络应用程序的用户或其他人?

不,会话变量不能由您的用户或其他人修改

但是,如果您不小心,浏览器可能会被欺骗使用错误的会话 cookie,并且会话 cookie 可能会被盗:

  • 在会话 cookie 上设置 httpOnly 标志
  • 在用户登录后更改其会话 ID 以避免会话固定
  • 使用 HTTPS 并在会话 cookie 上设置 secure 标志以避免会话劫持
  • 使用类似 modsecurity 的 WAF 保护您的网站免受 XSS 和 XSRF 的攻击

我建议使用 Spring Security 4 而不是滚动您自己的系统。

在我的情况下使用会话变量是可以的,或者 cookie 更好 ?

是的,没关系。没有 cookie 不是更好,因为 cookie 可以由用户或其他人修改。

【讨论】:

  • 我想支持不要使用您自己的安全层实现的建议。对于高技能和训练有素的专业人员来说,要正确地做到这一点已经足够困难了。此外,您需要具备良好的渗透测试技能,以确保确保实现正确完成。阅读 OWASP 测试指南是一个好的开始——但仍然只是一个开始。知识和技能是有区别的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 2011-02-24
  • 2016-04-25
  • 1970-01-01
相关资源
最近更新 更多