首页 > 织梦后台编辑模板时出现“Error:no csrf hash code!”的解决方法

织梦后台编辑模板时出现“Error:no csrf hash code!”的解决方法

当使用dedecms后台进行模板文件编辑的时候,会提示DedeCMS:CSRF Token Check Failed!内容,请注意不是系统BUG而是系统的一种安全防护。
织梦后台编辑模板时出现Error:no csrf hash code!
专业名称:CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

解决办法:

1、提示内容出现在“/dede/config.php”中,可以不用修改
function csrf_check()
{
global $token;
if(!isset($token) || strcasecmp($token, $_SESSION['token']) != 0){
echo 'DedeCMS:CSRF Token Check Failed!';
exit;
}
}

2、打开“/dede/tpl.php”,删除如下代码:
else if($action == 'saveedit')
{
csrf_check(); //删除此验证内容即可 q0738.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();
}

DedeCMS推荐
织梦搜索提示“SphinxClient类...
织梦添加新变量和删除新变量的方法
织梦标签dede:arclist输出取消...
织梦最新发表的帖子在24小时内标题显示红...
织梦高级搜索时报错undefined f...
织梦后台模板简洁版里辅助插件不显示新模块...