更改 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¶m2=value2
部分)只需 运行 页面加载此脚本:
<script>
$(function(){
history.replaceState("","",location.href.substring(0,location.href.indexOf("?")));
});
</script>
虽然这个客户端解决方案确实提高了清晰度和视觉效果,但我怀疑它是否提高了安全性; Post-Redirect-Get 会更好,但如果不能,请使用此技术。
我通常将 PRG 与此结合使用来实现漂亮的 URL,并且效果很好。
请注意,这是一个模拟的 PRG,加载页面后的 F5 可能会有不可预测的行为根据您对应用程序的编程方式.
我很清楚在 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¶m2=value2
部分)只需 运行 页面加载此脚本:
<script>
$(function(){
history.replaceState("","",location.href.substring(0,location.href.indexOf("?")));
});
</script>
虽然这个客户端解决方案确实提高了清晰度和视觉效果,但我怀疑它是否提高了安全性; Post-Redirect-Get 会更好,但如果不能,请使用此技术。
我通常将 PRG 与此结合使用来实现漂亮的 URL,并且效果很好。
请注意,这是一个模拟的 PRG,加载页面后的 F5 可能会有不可预测的行为根据您对应用程序的编程方式.