浩瀚の星空
管理员
管理员
  • 发帖数450
  • 铜币2217两
  • 威望763点
  • 贡献0点
  • 注册日期2014-09-22
  • 最后登录2017-06-07
  • 社区居民
  • 最爱沙发
阅读:9121回复:9

[漏洞补丁]9.x模版编辑时选择自定HTML模块,输入PHP可执行问题

楼主#
更多 发布于:2015-03-27 19:51
前台模版编辑时,如选择自定HTML模块时,输入php,js语句时将被执行,如下图

图片:bug.PNG



这本来是方便二次开发使用,但管理员在授权不慎时容易给他人可趁之机写入非法php语句,就解决方法如下:
1、如你需要此功能,那么除管理员外,不要给别人赋予模版编辑权限,设置路径是:“用户组管理--管理组--管理权限--门户权限”,设成“无作权限”即可
2、如果你不需要此功能,请按如下方法修改代码:
找到src/application/design/controller/PropertyController.php
找到
public function doaddAction() {
在这个方法里找到
if ($property['limit'] > 200) $this->showError('DESIGN:maxlimit.error');
在这句上头添加一句:
isset($property['html']) && $property['html'] = $this->_getDesignService()->filterTemplate($property['html']);
完整方法如下:
public function doaddAction() {
        $struct = $this->getInput('struct','post');
        $pageid = $this->getInput('pageid','post');
        $model = $this->getInput('model','post');
        if (!$model || $pageid <1) $this->showError('operate.fail');
        Wekit::load('design.PwDesignPermissions');
        $permissions = $this->_getPermissionsService()->getPermissionsForPage($this->loginUser->uid, $pageid);
        if ($permissions < PwDesignPermissions::IS_DESIGN ) $this->showError("DESIGN:permissions.fail");
        Wind::import('SRV:design.bo.PwDesignModelBo');
        $bo = new PwDesignModelBo($model);
        if (!$bo->isModel()) $this->showError('operate.fail');
        $name = trim($this->getInput('module_name','post'));
        if (empty($name)) $this->showError('DESIGN:module.name.empty');
        $cache = $this->getInput('cache','post');
        $property = $this->getInput('property','post');
        isset($property['html']) && $property['html'] = $this->_getDesignService()->filterTemplate($property['html']);
        if ($property['limit'] > 200) $this->showError('DESIGN:maxlimit.error');
        $cls = sprintf('PwDesign%sDataService', ucwords($model));
        Wind::import('SRV:design.srv.model.'.$model.'.'.$cls);
        $service = new $cls();
           
           
        $ds = $this->_getModuleDs();
        Wind::import('SRV:design.dm.PwDesignModuleDm');
        $dm = new PwDesignModuleDm();
        $dm->setPageId($pageid)
            ->setStruct($struct)
            ->setFlag($model)
            ->setName($name)
            ->setCache($cache)
            ->setModuleType(PwDesignModule::TYPE_DRAG)
            ->setIsused(1);
        $resource = $ds->addModule($dm);
        if ($resource instanceof PwError) $this->showError($resource->getError());
           
        $dm = new PwDesignModuleDm($resource);
        if (method_exists($service, 'decorateSaveProperty')) {
            $property = $service->decorateSaveProperty($property, $resource);
            if ($property  instanceof PwError ) $this->showError($property->getError());
        }
        $dm->setProperty($property);
        if ($property['html_tpl']) $dm->setModuleTpl($property['html_tpl']);
        $r = $ds->updateModule($dm);
        if ($r instanceof PwError) $this->showError($r->getError());
           
        Wind::import('SRV:design.srv.data.PwAutoData');
        $srv = new PwAutoData($resource);
        $srv->addAutoData();
           
        $this->setOutput($resource, 'data');
        $this->showMessage("operate.success");
    }
喜欢5 评分0
元芳
总版主
总版主
  • 发帖数13498
  • 铜币64702两
  • 威望47100点
  • 贡献57253点
  • 注册日期2007-02-01
  • 最后登录2017-06-23
  • 终身成就奖
  • 诚信商户
  • 资深侠客
  • 资深版主
  • 社区运营大师
  • 模范会员奖
  • phpwind功勋
  • 热心助人奖
  • 原创先锋奖
  • 最佳建议奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀版主奖
  • 民间侠客
  • 社区居民
  • 忠实会员
  • 最爱沙发
  • 社区明星
沙发#
发布于:2015-03-27 21:56
其实大家注意平时帐号安全就行~
特价主机网:{专为站长省钱!www.66jh.cn}  
phpwind民间论坛:{专为站长服务!phpwind.me}  
phpwind模板设计、插件开发、转换升级、故障处理等事宜请
【社区论坛站长群(2000人)166959234,点此快捷加入
回复(0) 喜欢(0)     评分
sdwf3000
PW moblie内测组
PW moblie内测组
  • 发帖数2052
  • 铜币3032两
  • 威望853点
  • 贡献0点
  • 注册日期2009-01-08
  • 最后登录2015-12-25
  • 最爱沙发
  • 社区明星
  • 忠实会员
  • 社区居民
板凳#
发布于:2015-03-28 07:55
学习了,谢谢
回复(0) 喜欢(0)     评分
壹老板
PW moblie内测组
PW moblie内测组
  • 发帖数257
  • 铜币983两
  • 威望91点
  • 贡献0点
  • 注册日期2014-12-28
  • 最后登录2015-12-24
3楼#
发布于:2015-03-30 09:18
是解决这个问题的不?http://www.phpwind.net/read/3419342
模型库        3D打印模型        STL模型下载        3D打印服务
回复(0) 喜欢(0)     评分
企鹅帝帝
新手上路
新手上路
  • 发帖数42
  • 铜币92两
  • 威望2点
  • 贡献0点
  • 注册日期2015-01-30
  • 最后登录2016-08-01
  • 社区居民
4楼#
发布于:2015-05-30 22:53
这样的话可以 弄广告了吗
回复(0) 喜欢(0)     评分
lyhuilin
初来乍到
初来乍到
  • 发帖数11
  • 铜币11两
  • 威望0点
  • 贡献0点
  • 注册日期2013-01-20
  • 最后登录2015-06-13
5楼#
发布于:2015-06-09 22:56
其实我想问的是,为啥网站下载地址那里只让买授权,却不让下载???
回复(0) 喜欢(0)     评分
baozi555
一星会员
一星会员
  • 发帖数186
  • 铜币578两
  • 威望15点
  • 贡献0点
  • 注册日期2012-03-16
  • 最后登录2015-06-28
6楼#
发布于:2015-06-09 23:03
看看先
回复(0) 喜欢(0)     评分
阿冰啊
二星会员
二星会员
  • 发帖数537
  • 铜币105两
  • 威望7点
  • 贡献0点
  • 注册日期2006-07-15
  • 最后登录2015-07-09
7楼#
发布于:2015-06-13 10:59
是啊.
回复(0) 喜欢(0)     评分
t2dk
初来乍到
初来乍到
  • 发帖数5
  • 铜币183两
  • 威望0点
  • 贡献0点
  • 注册日期2007-05-02
  • 最后登录2017-02-28
8楼#
发布于:2016-10-14 13:23
收藏备用
回复(0) 喜欢(0)     评分
shelley1
二星会员
二星会员
  • 发帖数399
  • 铜币136两
  • 威望-13点
  • 贡献0点
  • 注册日期2009-04-20
  • 最后登录2016-10-31
9楼#
发布于:2016-10-27 21:35
我都下载过的,自己藏着。嘿嘿
回复(0) 喜欢(0)     评分
游客

返回顶部