DedeCMS:CSRF Token Check Failed! 问题说明及解决方案

2023-02-04 / # 织梦教程 / 0

今天在使用后台编辑织梦广告的时候,不管是保存还是删除,都会提醒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 'DedeCMS:CSRF Token Check Failed!';
exit;
}
}

上述代码无需变更

2、代码删除部分,在/dede/tpl.php,在92行

{
csrf_check(); //删除此验证内容即可
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", "