>[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配置項