JS页面跳转使地址后面不显示参数
2017-04-05 10:17
1006 查看
背景
使用window.open()和window.location.href跳转时,新页面的地址栏会显示参数,如下:http://127.0.0.1:8080/website-cms/admin/article/edit?action=add。这样会暴露参数内容,用户可以修改地址栏的参数。如果提交的参数修改可能会出现业务上的错误,甚至可以跳过权限验证,实现本来没有的权限。
案例
以前做过一个系统是通过权限控制按钮,权限小的只能查看,权限大的可以修改。但是为了方便只使用了同一个页面通过不同的参数控制查看和修改。?op=1和?op=2分别是查看和修改,结果有的用户直接将op=1改为了op=2从而跳过权限验证,直接实现了修改功能。实现方法
实现的思路是利用JS创建一个Form表单,然后将参数用Input元素的方式添加到Form表单中,最后提交Form表单从而实现跳转。Form创建工具类
(function(){ //设置命名空间 var CodeSTD = window.CodeSTD || {}; window.CodeSTD = CodeSTD; /** * 创建Form表单 * @author 王成委 * @param config Object * <p>url:form的Action,提交的后台地址</p> * <p>method:使用POST还是GET提交表单</p> * <p>params:参数 K-V</p> * @return Form */ CodeSTD.form = function(config){ config = config || {}; var url = config.url, method = config.method || 'GET', params = config.params || {}; var form = document.createElement('form'); form.action = url; form.method = method; form.target = "_blank"; for(var param in params){ var value = params[param], input = document.createElement('input'); input.type = 'hidden'; input.name = param; input.value = value; form.appendChild(input); } return form; } })()
使用方法
function onAddClick(){ var treeObj = $.fn.zTree.getZTreeObj("menu-tree"); var nodes = treeObj.getSelectedNodes(); var node = nodes[0]; var menuId = node.menuId,menuName = node.menuName; var form = new CodeSTD.form({ url:'admin/article/edit', method:'POST', params:{ editor:'UE', action:'add', menuId:menuId, menuName:menuName } }) $(form).submit(); form = null; }
使用Form跳转后的地址http://127.0.0.1:8080/website-cms/admin/article/edit
相关文章推荐
- JS页面跳转使地址后面不显示参数
- js通过获取地址栏参数跳转页面
- js用POST方式页面跳转,避免在地址栏中显示传递参数
- js通过获取地址栏参数跳转页面
- js跳转页面传参,参数值包含中文时显示乱码解决方案
- js控制n秒后跳转到指定页面,并显示倒计时
- 新窗口window.open() url不显示参数,后面页面可以接收参数 ——后面页面为jsp
- jsp页面跳转中,从js里面获取url中的参数
- asp.net 页面跳转 隐藏参数显示
- JS如何实现点击页面内任意的链接均加参数跳转?
- JS实现几秒跳转并显示在页面上
- js控制显示多少秒后跳转到另一个页面
- js跳转另一个页面在本页显示及后台调用前台方法
- js跨域post参数并控制当前页面显示
- js实现两个页面之间跳转参数传递
- jquery刷新页面 页面跳转 js常用函数/table边框边显示
- JavaScript跳转页面/Action并传递中文参数[解决js超链接传递过程中产生的中文乱码问题]
- js 刷新页面和跳转页面的几个办法本文来自: 陈华IT笔记!本文详细地址:http://www.chhua.com/it/
- js 中 常用 frameset iframe 页面跳转 传参数值 方法示例大全
- JS 获得地址栏参数(转)+JS 获得上个页面的地址+ JS 截取