站长之家 - 站长资讯 - 易采站长站

当前位置: > 建站教程 > 源码教程 > 论坛程序 >

phpwind 9.x模版编辑时选择自定HTML模块,输入PHP可执行问题

2015-04-13 19:51 | 来源:易采源码网 | 编辑:秋军 |

前台模版编辑时,如选择自定HTML模块时,输入php,js语句时将被执行,如下图

这本来是方便二次开发使用,但管理员在授权不慎时容易给他人可趁之机写入非法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");

}

  • PHPWind7.3特色功能推荐
  • phpwind论坛关闭在线列表
  • phpwind7.5灵活的业务支持体系
  • phpwind后台删除用户点选“直接删除”出错问题
  • phpwind7.5完备的积分体系
  • PHPwind6.x CSS模板样式表修改帮助
  • phpwind7.5运营工具:站点运营必须工具集合
  • PHPWind论坛核心设置详细说明【config.php】
  • Phpwind7.5应用中心:基础、第三方在线应用等设置
  • phpwind 的编码错误导致cookie失效的解决,表象是无法注册登录
  • 网友评论

    关于我们 - 联系我们 - 广告服务 - 版权声明 - 人才招聘 - 友情链接 - 网站地图 - 帮助 - -

    CopyRight © 2010-2016 源码下载 easck.com , All Rights Reserved

    蒙公网安备 15052402000103号

    蒙ICP备14002389-1号