javascript 数据权限控制

木木水夕 2014-06-03 11:32:01
有一个开源框架,该框架用javascript开发。
背景描述:该框架内置一功能,调用javascript代码假定为方法getdata(var index1),传入参数index1,然后即可获得index为index1 的数据,该getdata方法非常复杂,不能修改。
问题描述:一个用户只有一个index,他只能查看属于他自己用户的index的数据,假如使用Chrome浏览器debug,某用户即可对该传入的index1参数进行修改,那就可以获得所有想要的数据,这是不被允许的。
请问该问题该怎么进行数据的权限控制及判断?

注:可以考虑将getdata()逻辑及index判断放入到server端(如放在servlet里面),此种方法非常复杂,姑且不考虑。
...全文
795 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
木木水夕 2014-06-04
  • 打赏
  • 举报
回复
引用 14 楼 rui888 的回复:
移动到后台哦。
目前看来真是需要这样做了
木木水夕 2014-06-04
  • 打赏
  • 举报
回复
引用 20 楼 zy205817 的回复:
switch() case xx 判断index传值,做对应操作
index的值不是固定的。。。其实直接传index给对应的方法即可。。anyway ,thanks..
木木水夕 2014-06-04
  • 打赏
  • 举报
回复
引用 19 楼 showbo 的回复:
[quote=引用 18 楼 duanjianmin 的回复:] [quote=引用 15 楼 showbo 的回复:] [quote=引用 12 楼 duanjianmin 的回复:] [quote=引用 11 楼 duanjianmin 的回复:] [quote=引用 9 楼 zzgzzg00 的回复:] 后台根据用户权限控制吧 前台部安全
恩,最开始也是这么想的,但是这样要修改的东西太多了,是在不行只能在后台做了[/quote] 谢了,版主,看来还真是需要移到后台了。[/quote] index你可以服务器端加密下,服务器端获取数据的时候需要执行解密,这样就不怕别人乱传数据了,就算乱传也获取不到数据,除非瞎掰猜测对就没办法了,完全靠客户端控制是不行的[/quote] 1.有点不明白为什么要“你可以服务器端加密下,服务器端获取数据的时候需要执行解密”,莫非版主的意思是:客户端加密,然后服务器端获取数据的时候解密?如果是这样的话,客户端也可以合成一个可被解析的假的加密后的数据,感觉应该不是这样 2.其实index是根据存放在session中的登录用户的用户信息 拼接而成的 ,可以直接在后台根据用户的信息组合出index然后在去获得数据。就是把获得数据的逻辑从前台转移到后台。[/quote] 服务器端加密你的index,如用des算法,session存储加密后的内容,这样客户端得到的就是加密后的内容,别人就不知道你index的数据结构了,也无法从调式工具调用你的那个函数传递index的值,只能靠猜测 客户端发送的index值你要在服务器端用des解密下[/quote] 版主说的方法可行,但是我始终觉得加解密有点没有意义,是这样的,我把获得数据的那个前台写的逻辑移到后台,与此同时我把方法中的那个index参数也给去掉,然后在后台中拼接出来index直接赋值给该方法使用去获得数据,正如我第二点中所述。 这样一来:前台中就没有可供调试的方法(因为已经移到后台,且参数被去掉),自然也获得不到非法的数据
码无边 2014-06-04
  • 打赏
  • 举报
回复
switch() case xx 判断index传值,做对应操作
Go 旅城通票 2014-06-04
  • 打赏
  • 举报
回复
引用 18 楼 duanjianmin 的回复:
[quote=引用 15 楼 showbo 的回复:] [quote=引用 12 楼 duanjianmin 的回复:] [quote=引用 11 楼 duanjianmin 的回复:] [quote=引用 9 楼 zzgzzg00 的回复:] 后台根据用户权限控制吧 前台部安全
恩,最开始也是这么想的,但是这样要修改的东西太多了,是在不行只能在后台做了[/quote] 谢了,版主,看来还真是需要移到后台了。[/quote] index你可以服务器端加密下,服务器端获取数据的时候需要执行解密,这样就不怕别人乱传数据了,就算乱传也获取不到数据,除非瞎掰猜测对就没办法了,完全靠客户端控制是不行的[/quote] 1.有点不明白为什么要“你可以服务器端加密下,服务器端获取数据的时候需要执行解密”,莫非版主的意思是:客户端加密,然后服务器端获取数据的时候解密?如果是这样的话,客户端也可以合成一个可被解析的假的加密后的数据,感觉应该不是这样 2.其实index是根据存放在session中的登录用户的用户信息 拼接而成的 ,可以直接在后台根据用户的信息组合出index然后在去获得数据。就是把获得数据的逻辑从前台转移到后台。[/quote] 服务器端加密你的index,如用des算法,session存储加密后的内容,这样客户端得到的就是加密后的内容,别人就不知道你index的数据结构了,也无法从调式工具调用你的那个函数传递index的值,只能靠猜测 客户端发送的index值你要在服务器端用des解密下
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 4 楼 bbjbepzz 的回复:
[quote=引用 3 楼 duanjianmin 的回复:] [quote=引用 1 楼 bbjbepzz 的回复:] 代码贴出来看下
你是指:获得数据的getdata方法?[/quote] 对,还要这个方法里面用到的方法,最好整个JS贴出来[/quote] 1.该方法有点大(642K)。如下连接:你需要先download zip 文件 http://www.elasticsearch.org/overview/kibana/installation/ 然后找到文件app.js:kibana-3.1.0\kibana-3.1.0\app\app.js 2.另外除了修改该方法有没有别的思路?
bbjbepzz 2014-06-03
  • 打赏
  • 举报
回复
引用 3 楼 duanjianmin 的回复:
[quote=引用 1 楼 bbjbepzz 的回复:] 代码贴出来看下
你是指:获得数据的getdata方法?[/quote] 对,还要这个方法里面用到的方法,最好整个JS贴出来
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 1 楼 bbjbepzz 的回复:
代码贴出来看下
你是指:获得数据的getdata方法?
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
问题补充:每个用户只有一个对应的index,该功能为我们自己添加的新功能,现已经完成,就是在获得相应的数据上会出现如题描述的通过浏览器修改index的问题。
bbjbepzz 2014-06-03
  • 打赏
  • 举报
回复
代码贴出来看下
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 15 楼 showbo 的回复:
[quote=引用 12 楼 duanjianmin 的回复:] [quote=引用 11 楼 duanjianmin 的回复:] [quote=引用 9 楼 zzgzzg00 的回复:] 后台根据用户权限控制吧 前台部安全
恩,最开始也是这么想的,但是这样要修改的东西太多了,是在不行只能在后台做了[/quote] 谢了,版主,看来还真是需要移到后台了。[/quote] index你可以服务器端加密下,服务器端获取数据的时候需要执行解密,这样就不怕别人乱传数据了,就算乱传也获取不到数据,除非瞎掰猜测对就没办法了,完全靠客户端控制是不行的[/quote] 1.有点不明白为什么要“你可以服务器端加密下,服务器端获取数据的时候需要执行解密”,莫非版主的意思是:客户端加密,然后服务器端获取数据的时候解密?如果是这样的话,客户端也可以合成一个可被解析的假的加密后的数据,感觉应该不是这样 2.其实index是根据存放在session中的登录用户的用户信息 拼接而成的 ,可以直接在后台根据用户的信息组合出index然后在去获得数据。就是把获得数据的逻辑从前台转移到后台。
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 16 楼 rainVSjava 的回复:
通过ajax调用一下后台,得到一个用md5加密过的index
然后那?在客户端接着调用Javascript去获得数据吗?
rainVSjava 2014-06-03
  • 打赏
  • 举报
回复
通过ajax调用一下后台,得到一个用md5加密过的index
Go 旅城通票 2014-06-03
  • 打赏
  • 举报
回复
引用 12 楼 duanjianmin 的回复:
[quote=引用 11 楼 duanjianmin 的回复:] [quote=引用 9 楼 zzgzzg00 的回复:] 后台根据用户权限控制吧 前台部安全
恩,最开始也是这么想的,但是这样要修改的东西太多了,是在不行只能在后台做了[/quote] 谢了,版主,看来还真是需要移到后台了。[/quote] index你可以服务器端加密下,服务器端获取数据的时候需要执行解密,这样就不怕别人乱传数据了,就算乱传也获取不到数据,除非瞎掰猜测对就没办法了,完全靠客户端控制是不行的
tony4geek 2014-06-03
  • 打赏
  • 举报
回复
移动到后台哦。
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 8 楼 yangweiharry 的回复:
把这个index做复杂点,比如,userId和随机码的组合,或者在中间层将index转换成用户无法看懂的序列,这样前台改动成功的几率几乎为零
这个方法不可行在这个项目中,用户是肯定知道index的格式的,具体业务逻辑比较多,不过还是非常感谢你的回答。 另外:“或者在中间层将index转换成用户无法看懂的序列,这样前台改动成功的几率几乎为零” index 转换成无法看懂的序列后,但最终是要在前端调用javascript传入该index 然后获得数据,此时肯定需要在“解密”成正长的数据然后才能去获得数据,因此,此方法可能行不通
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 11 楼 duanjianmin 的回复:
[quote=引用 9 楼 zzgzzg00 的回复:] 后台根据用户权限控制吧 前台部安全
恩,最开始也是这么想的,但是这样要修改的东西太多了,是在不行只能在后台做了[/quote] 谢了,版主,看来还真是需要移到后台了。
木木水夕 2014-06-03
  • 打赏
  • 举报
回复
引用 9 楼 zzgzzg00 的回复:
后台根据用户权限控制吧 前台部安全
恩,最开始也是这么想的,但是这样要修改的东西太多了,是在不行只能在后台做了
Go 旅城通票 2014-06-03
  • 打赏
  • 举报
回复
这种功能肯定是在服务器端控制 客户端你再怎么限制别人都可以破,只是难易程度问题
似梦飞花 2014-06-03
  • 打赏
  • 举报
回复
后台根据用户权限控制吧 前台部安全
加载更多回复(3)

87,915

社区成员

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

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