浩瀚の星空
管理员
管理员
  • 发帖数452
  • 铜币2345两
  • 威望797点
  • 贡献96点
  • 注册日期2014-09-22
  • 最后登录2017-11-24
  • 社区居民
  • 最爱沙发
阅读:10429回复:9

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

楼主#
更多 发布于:2015-03-27 19:51
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
前台模版编辑时,如选择自定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");
    }
元芳
总版主
总版主
  • 发帖数13516
  • 铜币64994两
  • 威望47108点
  • 贡献57217点
  • 注册日期2007-02-01
  • 最后登录2017-12-14
  • 终身成就奖
  • 诚信商户
  • 资深侠客
  • 资深版主
  • 社区运营大师
  • 模范会员奖
  • phpwind功勋
  • 热心助人奖
  • 原创先锋奖
  • 最佳建议奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀版主奖
  • 民间侠客
  • 社区居民
  • 忠实会员
  • 最爱沙发
  • 社区明星
沙发#
发布于:2015-03-27 21:56
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
其实大家注意平时帐号安全就行~
sdwf3000
PW moblie内测组
PW moblie内测组
  • 发帖数2052
  • 铜币3032两
  • 威望853点
  • 贡献0点
  • 注册日期2009-01-08
  • 最后登录2015-12-25
  • 最爱沙发
  • 社区明星
  • 忠实会员
  • 社区居民
板凳#
发布于:2015-03-28 07:55
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
学习了,谢谢
壹老板
PW moblie内测组
PW moblie内测组
  • 发帖数257
  • 铜币983两
  • 威望91点
  • 贡献0点
  • 注册日期2014-12-28
  • 最后登录2015-12-24
3楼#
发布于:2015-03-30 09:18
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
是解决这个问题的不?http://www.phpwind.net/read/3419342
企鹅帝帝
新手上路
新手上路
  • 发帖数42
  • 铜币92两
  • 威望2点
  • 贡献0点
  • 注册日期2015-01-30
  • 最后登录2016-08-01
  • 社区居民
4楼#
发布于:2015-05-30 22:53
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
这样的话可以 弄广告了吗
lyhuilin
初来乍到
初来乍到
  • 发帖数11
  • 铜币11两
  • 威望0点
  • 贡献0点
  • 注册日期2013-01-20
  • 最后登录2015-06-13
5楼#
发布于:2015-06-09 22:56
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
其实我想问的是,为啥网站下载地址那里只让买授权,却不让下载???
baozi555
一星会员
一星会员
  • 发帖数186
  • 铜币578两
  • 威望15点
  • 贡献0点
  • 注册日期2012-03-16
  • 最后登录2015-06-28
6楼#
发布于:2015-06-09 23:03
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
看看先
阿冰啊
二星会员
二星会员
  • 发帖数537
  • 铜币105两
  • 威望7点
  • 贡献0点
  • 注册日期2006-07-15
  • 最后登录2015-07-09
7楼#
发布于:2015-06-13 10:59
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
是啊.
t2dk
初来乍到
初来乍到
  • 发帖数5
  • 铜币183两
  • 威望0点
  • 贡献0点
  • 注册日期2007-05-02
  • 最后登录2017-02-28
8楼#
发布于:2016-10-14 13:23
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
收藏备用
shelley1
二星会员
二星会员
  • 发帖数399
  • 铜币136两
  • 威望-13点
  • 贡献0点
  • 注册日期2009-04-20
  • 最后登录2016-10-31
9楼#
发布于:2016-10-27 21:35
系统提示:关于phpwind产品的学习与交流已经迁移到阿里云论坛,请访问这里:https://bbs.aliyun.com/fourms.php?m=bbs&cateid=403
我都下载过的,自己藏着。嘿嘿
游客

返回顶部