`
gavinxixi
  • 浏览: 21243 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

DWR安全性疑问描述

阅读更多

背景前提:

针对UserRemote这个远程调用

其中有两个方法:

deleteUserexistsUserID

都是可供远程调用的。

 

问题描述:

假如某个页面只需要用到existsUserID来判断用户是否存在,那么就一定有调用deleteUser来删除用户的能力,这显然是不安全的。

 

举例:

1)        某用户登录后输入url可以到达填写信息的页面

2)       
 
这里会调用existsUserID

因此引用js文件

<script src='<c:url value='/dwr/interface/UserRemote.js'/>'></script>

3)        在地址栏中输入

javascript:UserRemote.deleteUser(75,function(date){alert(date);});

4)        这样意味着一个普通用户也能执行删除别的用户的操作

 

解决方案:

因为dwr不能(或者是我不知道)获取Session,难以做权限判断,而且在业务层也不应该做过多不纯粹的工作,应该交由框架级的拦截器做这个权限工作。

  • 大小: 4.1 KB
0
1
分享到:
评论
2 楼 gavinxixi 2009-10-20  
CoderDream 写道
因为dwr不能(或者是我不知道)获取Session???

太小白了吧!

当然可以!

public String findOrgName(HttpSession session, String orgName) {

}

在js中调用时不用传session。

删除是一个特殊操作,你要求界面传入用户名或密码。

不懂不是你的错,可以去学,但是请不要不懂装懂,乱说。

DWR现在应用很广泛,难道连这些问题都不会考虑到?!


谢谢你的指导,我确实是非常菜鸟的,所以我也没有把话说死,只是提出一个疑问而已,我没有装懂,再次谢谢你的回答。
1 楼 CoderDream 2009-10-19  
因为dwr不能(或者是我不知道)获取Session???

太小白了吧!

当然可以!

public String findOrgName(HttpSession session, String orgName) {

}

在js中调用时不用传session。

删除是一个特殊操作,你要求界面传入用户名或密码。

不懂不是你的错,可以去学,但是请不要不懂装懂,乱说。

DWR现在应用很广泛,难道连这些问题都不会考虑到?!

相关推荐

Global site tag (gtag.js) - Google Analytics