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

Change display URL in struts 2 to hide request parameters

我很清楚在 URL 中使用 GET 方法和传递请求参数是 不良做法 安全漏洞 .但是我们处于项目开发接近完成的情况,我们无法承受将所有 GET 更改为 POST 并重新测试整个事情。

有没有办法改变显示的URL?

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

路是存在的,就是HTML5历史API。

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

看看 history.replaceState() and history.pushState() 方法:第一个更改当前的历史条目,第二个添加一个新条目(在使用后退按钮时产生噪音,所以我建议第一个)。

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

<script>

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

</script>

虽然这个客户端解决方案确实提高了清晰度和视觉效果,但我怀疑它是否提高了安全性; Post-Redirect-Get 会更好,但如果不能,请使用此技术。

我通常将 PRG 与此结合使用来实现漂亮的 URL,并且效果很好。

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