Pārlūkot izejas kodu

1,优化模板管理保存安全检测功能。

magicblack 5 gadi atpakaļ
vecāks
revīzija
72dc07bee0

+ 3 - 3
application/admin/controller/Template.php

@@ -173,6 +173,8 @@ class Template extends Base
                 return;
                 return;
             }
             }
         }
         }
+        $filter = '<\?|php|eval|server|assert|get|post|request|cookie|session|input|env|config|call|global|dump|print|phpinfo|fputs|fopen|global|chr|strtr|pack|system|gzuncompress|shell|base64|file|proc|preg|call|ini';
+        $this->assign('filter',$filter);
 
 
         if (Request()->isPost()) {
         if (Request()->isPost()) {
             $validate = \think\Loader::validate('Token');
             $validate = \think\Loader::validate('Token');
@@ -184,10 +186,8 @@ class Template extends Base
             if(!$validate->check($param)){
             if(!$validate->check($param)){
                 return $this->error($validate->getError());
                 return $this->error($validate->getError());
             }
             }
-
             $fcontent = $param['fcontent'];
             $fcontent = $param['fcontent'];
-            $filter = '<?|{php|eval|server|assert|get|post|request|cookie|input|session|env|config|call|global|dump|print|phpinfo|passthru|exec|system|chroot|scandir|chgrp|chown|shell_exec|proc_open|proc_get_status|ini_alter|ini_alter|ini_restore|dl|pfsockopen|openlog|syslog|readlink|symlink|popepassthru|stream_socket_server|fsocket|fsockopen';
-            $r = preg_replace($filter, "*", $fcontent);
+            $r = mac_reg_replace($fcontent,$filter,"*");
             if($fcontent !== $r){
             if($fcontent !== $r){
                 $this->error('安全提示,模板中包含风险代码禁止在后台编辑');
                 $this->error('安全提示,模板中包含风险代码禁止在后台编辑');
                 return;
                 return;

+ 6 - 0
application/admin/view/template/info.html

@@ -2,6 +2,12 @@
 <div class="page-container">
 <div class="page-container">
     <form class="layui-form layui-form-pane" method="post" action="">
     <form class="layui-form layui-form-pane" method="post" action="">
         <input type="hidden" name="__token__" value="{$Request.token}" />
         <input type="hidden" name="__token__" value="{$Request.token}" />
+        <blockquote class="layui-elem-quote layui-quote-nm">
+            提示信息:<br>
+            为了安全考量避免通过模板写入后门文件,文件内出现以下任意字符串时禁止在线保存修改,如需修改请使用其他方式。<br>
+            {$filter}
+        </blockquote>
+
         <div class="layui-form-item">
         <div class="layui-form-item">
             <label class="layui-form-label">路径:</label>
             <label class="layui-form-label">路径:</label>
             <div class="layui-input-block">
             <div class="layui-input-block">