
复制 问题
|
创建 子任务
|
|
如果你是 登录 你不能看到更多操作.
|
|
|
easyjweb
创建: 21/十一月/07 09:45 上午
更新: 21/十一月/07 12:45 下午
|
|
| 模块: |
IOC容器
|
| 影响版本: |
无
|
| 修复版本: |
无
|
|
|
环境:
|
easyjweb-1.0m1 jdk1.5
|
|
|
我们知道AbstractCmdAction中,可以从客户端传入cmd参数来实现对Action中指定方法的调用。也就是说假如Action中有一个名为public void test()方法,则可以直接使用xx.ejf?cmd=test来执行这个方法。为了支持灵活特性,同时规范可供客户端调用的方法书写规范。我们推荐不要把供客户端直接调用的方法如此命名,因此提供了一个以do开头的方法名支持。即xx.ejf?cmd=test调用的时候,首先检测有没有doTest方法,只有在没有doTest方法的时候,才去查找test方法。
反过来说,我们也可以使用xx.ejf?cmd=doTest来实现直接调用本来我们希望使用xx.ejf?cmd=test调用的方法。在基本url拦截的权限配置中,这造成了一个安全隐患。也即我们一般只配置了针对xx.ejf?cmd=test这个url的拦截。但没有配置针对xx.ejf?cmd=doTest 这个url拦截。因此,为了消除这样的安全隐患,建议AbstractCmdAction不要支持xx.ejf?cmd=doTest形式的url。
|
|
描述
|
我们知道AbstractCmdAction中,可以从客户端传入cmd参数来实现对Action中指定方法的调用。也就是说假如Action中有一个名为public void test()方法,则可以直接使用xx.ejf?cmd=test来执行这个方法。为了支持灵活特性,同时规范可供客户端调用的方法书写规范。我们推荐不要把供客户端直接调用的方法如此命名,因此提供了一个以do开头的方法名支持。即xx.ejf?cmd=test调用的时候,首先检测有没有doTest方法,只有在没有doTest方法的时候,才去查找test方法。
反过来说,我们也可以使用xx.ejf?cmd=doTest来实现直接调用本来我们希望使用xx.ejf?cmd=test调用的方法。在基本url拦截的权限配置中,这造成了一个安全隐患。也即我们一般只配置了针对xx.ejf?cmd=test这个url的拦截。但没有配置针对xx.ejf?cmd=doTest 这个url拦截。因此,为了消除这样的安全隐患,建议AbstractCmdAction不要支持xx.ejf?cmd=doTest形式的url。 |
Show » |
|