解决方案 »

  1.   

    那你就用一个拦截器了,不合法的url全部被拦截不就可以了。
      

  2.   

    自己写一个FIlter去过滤掉非法的url。
      

  3.   

    forum_id建表的时候不用自增,使用uuid唯一标示,就算别人瞎蒙也猜不到了
      

  4.   

    果断写一个拦截器,不正确的url会跳转到其他页面
      

  5.   

    首先你的orum_id生成规则是不合理的,这种生成一种随机数而不是这种自增的形式,另外,拦截器是必须的,必须判断用户是否登陆,如果即使登陆也要做拦截的话 ,那就在单独的拉出方法判断
      

  6.   

    request.getHeader("referer")是指获取当前这个请求来自的页面,如果是用户在地址栏输入一个地址发过来,这个方法获得的值为null.可以通过这个判断。这个是HTTP协议规定的。浏览器是遵守这个协议的,但是如果我用程序模拟一个HTTP请求过来,而不是通过浏览器发起,则我可以任意设置这个值,没有办法判断,毕竟HTTP协议是公开协议,而你的程序既然决定使用HTTP协议,就接受任何正确的HTTP请求。
      

  7.   

    另外一个办法就是通过密钥对url上的参数进行签名,比如url上有三个参数,按一定顺序排列后用一个只有服务端知道的密钥签名放在<a href="http://www.xxx.com/?a=1&b=2&c=3&sig=xxxxxxxx">里,这样,如果用户改了里面参数的内容,比如把a=1改成了a=2,但不知道你的密钥,也无法模拟你的签名,后台通过接收到的参数列表,用密钥进行签名校验,就可以知道这个url是不是原始你写出去的url了。
      

  8.   

    1。对URL encode  服务端去 decode
    2。根本不暴露URL,,,(在大部分企业管理里面很常见,用JSON+AJAX异步刷新或者用Iframe)
    3。采用路径全部采用/ //的方式,没有==号,且路径为随机数 或者UUID