在支柱2隐藏请求参数的变化显示网址(Change display URL in struts 2 t

2019-10-24 05:29发布

我很清楚地知道使用GET方法,并把请求参数中的URL是一个不好的做法安全漏洞 。 但是,我们在项目开发已基本完成的情况下,我们没有能力改变所有的GET发布和从头再来重新测试整个事情。

有没有办法来改变显示的网址是什么?

或URL编码将做的工作? 请建议这可能是在这种情况下,最好的办法。

Answer 1:

的方式存在,它是HTML5历史API。

它需要JavaScript和HTML5兼容的浏览器 ,或为老IE的JavaScript回退(如History.js) 。

看看history.replaceState()history.pushState()方法:首先改变目前的历史条目,第二增加了一个新的(在创建后退按钮的使用噪音,所以我建议第一)。

要删除查询字符串(的?param1=value1&param2=value2部分)只运行在页面加载这个脚本:

<script>

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

</script>

虽然这个客户端解决方案肯定提高清晰度和眼睛糖果,我怀疑它提高了安全性可言; 后重定向消息获取会更好,但如果你不能,那么使用这种技术。

我一般结合使用PRG与此实现漂亮的网址,它完美的作品。

请注意,这是一个模拟PRG,页面加载可能会根据您如何编程应用程序中有不可预知的行为后F5。



文章来源: Change display URL in struts 2 to hide request parameters