更改struts 2中的显示网址以隐藏请求参数

时间:2015-07-27 04:12:00

标签: java html5 url struts2 query-string

我非常清楚使用GET方法并在网址中传递请求参数是不良做法安全漏洞。但是我们处于项目开发几乎完成的状态,我们无法承担将所有GET更改为POST并重新测试整个事情的能力。

有没有办法更改显示的网址?

或者URL编码可以完成这项工作吗?请建议在这种情况下最好的方法。

1 个答案:

答案 0 :(得分:1)

存在方式,它是HTML5 History API。

它需要JavaScript和HTML5 compliant browsers,或javascript fallback for old IE (eg History.js)

看一下history.replaceState()history.pushState()方法:第一个改变当前历史记录条目,第二个改变一个新方法(在后退按钮使用中产生噪声,所以我建议第一个)。 / p>

要删除QueryString(?param1=value1&param2=value2部分),只需在页面加载时运行此脚本:

<script>

    $(function(){
        history.replaceState("","",location.href.substring(0,location.href.indexOf("?")));
    });

</script>

虽然这个客户端解决方案肯定会提高清晰度和眼睛糖果,但我怀疑它可以提高安全性; Post-Redirect-Get会更好,但如果你不能,那么就使用这种方法。

我通常将PRG与此结合使用来实现漂亮的URL,并且它运行良好。

请注意,这是一个模拟的PRG,加载页面后的F5可能会根据您对应用程序的编程方式 进行无法预测的行为