为什么进后台 一直出现这个 Malicious Request
为什么进后台 一直出现这个 Malicious Request为什么进后台 一直出现这个 Malicious Request是函数check_token()的问题,该函数的作用是有效防止表单的远程提交,防止返回刷新重复提交等安全防护。
当你发布文章的时候,表单里会产生一个隐藏的字段。提交表单时该函数就是检测改隐藏字段的值。不通过时就会抛出错误“Malicious Request”,并且终止程序。
解决办法:
(1)检查看看表单是否正确生成隐藏字段hiddentoken的值,如果正确生成再看看是否通过以下代码的检测: $page=!empty($_SERVER['PHP_SELF'])?md5($_SERVER['PHP_SELF']):'token';
$hiddentoken=$_POST['hiddentoken']?$_POST['hiddentoken']:$_GET['hiddentoken'];
if ($_SESSION['token'][$page]!=$hiddentoken)
{
unset($_SESSION['token'],$hiddentoken);
exit("Malicious Request");
}
复制代码(2)如果你对php不是很熟悉的话,你可以用最快也是最简洁的办法:把 根目录\admin\include\admin_common.fun.php文件里的函数check_token()的逻辑注释掉吧。就是function check_token()
{/*
global $_CFG;
if (empty($_SESSION['token']))
{
unset($_SESSION['token']);
exit("Malicious Request");
}
else
{
$page=!empty($_SERVER['PHP_SELF'])?md5($_SERVER['PHP_SELF']):'token';
$hiddentoken=$_POST['hiddentoken']?$_POST['hiddentoken']:$_GET['hiddentoken'];
if ($_SESSION['token'][$page]!=$hiddentoken)
{
unset($_SESSION['token'],$hiddentoken);
exit("Malicious Request");
}
}
unset($_SESSION['token'],$hiddentoken);
if(!preg_match("/".str_replace('/','\/',$_CFG['site_dir'].str_replace(QISHI_ROOT_PATH,'',ADMIN_ROOT_PATH))."/", $_SERVER['HTTP_REFERER']))
{
exit("Malicious Request");
}*/
}
复制代码
TAG:
评论加载中...
|