超级连接指向某页面参数的隐藏的处理

jndszl 2014-01-11 06:29:33
项目中以前没有注意一个问题,就是在生成超级连接的时候,指向一个页面,利用了js的window.location.href进行了页面的跳转

window.location.href=../item.jsp?type=a&uid=S998982212

在打开新页面的时候,以为是get方式传递的,在页面的url中或暴露出连接参数等关键信息,被人手工修改后,程序会加载错误。网上查资料想改用post方式隐藏参数信息。今天写了一个很笨的函数来处理这个问题,贴出来与大家共享一下,看看有无更好的改进方案或是实现思路。

dynamicPost(../item.jsp?type=a&uid=S998982212) ;


function dynamicPost(value){
var form = $('<form></form>').appendTo(document.body); //把form增加包boby中,否则表单无法提交,也无法跳转到对应的页面中
var urlLength = value.indexOf("?") ;
var action ="" ;
if (urlLength>0){
action=value.substring(0,urlLength) ;
form.attr('action', action);
form.attr('method','post')
var arg = value.substring(urlLength+1,value.length) ;
var args =arg.split("&");
var arr = [];
for (i=0;i<args.length ;i++ )
{
var part = args[i];
var parts = part.split("=") ;
var input = $('<input type="text" name='+parts[0]+' />');
input.attr('value', parts[1]);
form.append(input);
}
form.submit();

}else{
action= value ;
window.location.href=action ;
}
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jndszl 2014-01-15
  • 打赏
  • 举报
回复
UrlRewriter 这种技术没有研究太多,但是配置好以后,以前程序中写的 ../a.jsp?type=a 等这种写法,在不修改程序的前提下,能否使用,我想不太可能吧,就是因为我们以前写了太多的这种东西,修改起来不是很方便了,所以我只考虑如何把参数屏蔽的一个补救措施了,算是亡羊补牢的一个办法吧。
泡泡鱼_ 2014-01-14
  • 打赏
  • 举报
回复
引用 3 楼 jndszl 的回复:
目标页将会很容易丢失掉这些参数? 怎么个情况下会丢失呢
比如目标页有翻页,又或者当前参数传递人目标页后,还需要传递给下一级页面.所以我只是说明一种可能而已 而且你这种方法,别人一样可以恶意的修改你的参数.属于治标不治本的方法.建议你应该将重点放在服务端的安全处理方面
jndszl 2014-01-14
  • 打赏
  • 举报
回复
目标页将会很容易丢失掉这些参数? 怎么个情况下会丢失呢
泡泡鱼_ 2014-01-12
  • 打赏
  • 举报
回复
你这样处理的话,目标页将会很容易丢失掉这些参数,持续性就没有了 有一种技术叫:URL重写 你不妨找找,.就是类似于UrlRewriter之类的 item.jsp?type=a&uid=S998982212 可变更为 /a/S998982212.html 当然,参数还是可以被人手工更改,没处理好时程序照样丢出异常,但这些都是可以控制的事情

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧