>[danger]远程代码执行漏洞(CVE-2019-11043)
远程代码执行漏洞包含服务端运行环境漏洞和代码漏洞两种情况。服务端环境漏洞按对应官方修复档案修复即可,代码层面的漏洞主要为必要的、合理的全局字符串过滤和配置禁用相关的函数。
针对基于TP框架的解决方式如下:
(1)、application/Config.php 配置全局过滤函数
~~~
'default_filter' => 'trim,strip_tags,htmlspecialchars',
~~~
因为全局配置了移除html标签和所有字符实体转换,会对程序运行造成一定的负面影响,所在在例如需要使用富文本编辑器时需要重设局部的过滤器
~~~
$this->request->filter('trim');
~~~
另外,在局部控制器中请求用户输入数据时,需要根据数据类型做必要的过滤和验证,例如传入整数类型的参数id,则在请求时作如下处理:
~~~
$id =$this->request->param('id',0,'intval');
if(!$id || $id<0){
$this->error('无效的参数值(id)!');
}
~~~
(2)、php.ini中配置disabled_functions配置项