会话变量可以被黑客修改吗?

时间:2015-04-13 20:00:43

标签: java spring session spring-mvc

我正在使用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更好吗?

1 个答案:

答案 0 :(得分:1)

  

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

不,您的某个用户或其他人无法修改会话变量

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

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

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

  

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

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