dedecms教程学习网
2022-04-06
问题说明:当使用dede后台进行模板文件编辑的时候,会提示DedeCMS:CSRF Token Check Failed!内容,请注意不是系统BUG而是系统的一种安全防护。
专业名称:CSRF(Cross-site reques
专业名称:CSRF(Cross-site reques
问题说明:
B2Ca1d18fc5799dd0c8bb.png" title="e614c8c726ab2ca1d18fc5799dd0c8bb.png" alt="image.png"/>
当使用dede后台进行模板文件编辑的时候,会提示dedecms:CSRF Token Check Failed!内容,请注意不是系统BUG而是系统的一种安全防护。
专业名称:CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
问题解决
1、提示内容出现在 /dede/config.php中,在第63行:
function csrf_check() { global $token; if(!isset($token) || strcasecmp($token, $_SESSION['token']) != 0){ echo '<a href="http://bbs.dedecms.com/907721.html">DedeCMS:CSRF Token Check Failed!</a>'; exit; } }
上述代码无需变更
2、代码删除部分,在/dede/tpl.php,在92行
else if($action == 'saveedit') { csrf_check(); //删除此验证内容即可 www.25qi.com if($filename == '') { ShowMsg('未指定要编辑的文件或文件名不合法', '-1'); exit(); } if(!preg_match("#\.htm$#", $filename)) { ShowMsg('DEDE模板文件,文件名必须用.htm结尾!', '-1'); exit(); } $content = stripslashes($content); $content = preg_replace("/##textarea/i", "<textarea", $content); $content = preg_replace("/##\/textarea/i", "</textarea", $content); $content = preg_replace("/##form/i", "<form", $content); $content = preg_replace("/##\/form/i", "</form", $content); $truefile = $templetdird.'/'.$filename; $fp = fopen($truefile, 'w'); fwrite($fp, $content); fclose($fp); ShowMsg('成功修改或新建文件', 'templets_main.php?acdir='.$acdir); exit(); }
为了后台模板的安全性,建议不要删除上述的验证内容,可以直接使用FTP下载模板,修改后二进制上传覆盖源文件
显示全部内容...