我写了一个web系统,遇到一个问题,页面之间跳转传参很多时候都是类似
http://192.168.0.23:8080/query.jsp?id=5这种方式,很多时候客户会把id=5改成6,7,8这种的来查询别人的记录,有没有不允许客户修改url的方法?请赐教。
我曾用过request.getHeader("Referer");来判断来源地址,但是因为系统中有很多类似于用javascript中的 
            window.open("query.jsp?id=5");    
            location.href="query.jsp?id=5";,
            还有
            response.sendRedirect("query.jsp?id=5");
            <jsp:forward   page="query.jsp"   />
这些方法,用
request.getHeader("Referer");均为空,所以不行,求高手给个解决方法,谢谢

解决方案 »

  1.   

    session中存储用户信息,到了显示页面判断该信息是否属于该用户,不是就不给看
      

  2.   

    这个是你权限有漏洞,仅仅靠不允许客户改URL还是不太严谨(即使做到了);如果可能的话,还是要完善一下权限控制。
      

  3.   

    session中有存储用户信息,但有时上级或者当事人请假的时候,上级人员要处理用户的相应内容,用session是不行的。
      

  4.   

    现在是用户甲只能看到用户甲处理的订单,用户乙可以看到用户乙的订单,相应的权限处理,但用户甲去强行修改url的时候可以看到用户乙的订单,如果用户乙不在,他的主管是可以处理他的订单的。所以需要处理用户修改url的问题。
      

  5.   

    你就不应该在地址栏里显示全部url
      

  6.   

    有点是在table中的tr上的点击事件,只能传一个全的url啊。
      

  7.   

    你的页面应该用框架页面
    那么地址栏显示的url是始终不变的
      

  8.   

    没用的,右键就可以看到URl,