好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ShopEx某处平衡权限及修复 - 网站安全 - 自学php

首先我们来看看问题出现的文件源代码:

 

core/shop/controller/ctl.member.php文件

 

 

......

第1026行

//删除收货地址 function delRec($addrId){ $oMem = &$this->system->loadModel('member/member'); if($oMem->delRec($addrId)){ $this->redirect('member','receiver'); } $this->_output(); }

 

......

 

上述函数delRec,没有对addrId进行判断,直接进行删除,这样修改addrId构造而已url就能删除整站中所有用户的收获地址。

 

我们修改

http://localhost/shopex/?member-21-delRec. html 中的21这个id号就可删除其他任意用户的地址。

 

 

 先看看删除111111的收获地址url:

 

 

http://localhost/shopex/?member-5-delRec.html

 

 

 

再看看删除222222的收货地址url:

 

 

http://localhost/shopex/?member-6-delRec.html

 

 

 

现在我们删除111111的5号收货地址,然后截包,更改addrId为222222的6号收货地址:

 

最后222222的6号地址被成功删除。

 

修复方案: 具体就不说了,只要把core/shop/controller/ctl.member.php文件的删除收货地址的delRec函数按照修改收获地址函数modifyReceiver同样的方法,判断此addrId是否属于此用户:

if($aRet = $oMem->getAddrById($addrId, $this->member['member_id']))

查看更多关于ShopEx某处平衡权限及修复 - 网站安全 - 自学php的详细内容...

  阅读:47次