偷梁换柱、移花接木与狸猫换太子

      做了一个单独给外部系统访问的jsp页面,但是外部系统访问这个jsp的时候,传入了登录本地系统的用户名和密码,原型演示的时候,用户提出了一个安全问题,即系统用户名和密码暴露了。

      然后考虑修改,首先由于外部系统自身限制(c/s架构系统,非web系统),是不能使用隐藏域表单提交方法来隐藏参数的

http://localhost:8080/xxx/xxx.do;jsessionid=abce?method=begin&name=/xxx&welcome=/.../.../aaa.jsp&username=user&pwd=123

      外部系统的请求方式

    

      开始想到的是本地页面使用全屏显示,去掉地址栏,但是百度下,给出的方法都是使用window.open方法,这样有一个问题就是需要把请求过来的url处理,去掉用户密码参数,然后在本地页面再次发起不带用户密码的url请求,用户和密码使用隐藏域表单提交的方法传递,但是这样在页面右键查看源文件的时候仍然可以看到用户密码信息。

      可能是上面的思路铺垫,就是在本地页面重新发起一个可以隐藏传递参数的url请求,由于是第二次请求,第一次请求时候已经登录过了系统,所以就考虑到第二次请求直接使用 ip:port/.../jsp 的方法,即由于第一次请求已经通过了系统验证,所以第二次请求就不需要验证了,即不需要发送用户名密码参数,简单流程就是 在第一次请求页面 发起第二次请求,打开新的页面,关闭原来的页面就可以了。由于两次都是访问同一个jsp,添加了一个参数用于控制是否在当前页面需要发起第二次请求。

你可能感兴趣的:(偷梁换柱、移花接木与狸猫换太子)