故障描述:
退出登录时出现”您当前的访问请求当中含有非法字符,已经被系统拒绝“错误。如下图:
解决方法:
打开 \\source\\class\\discuz\\discuz_application.php 文件
找到
private function _xss_check() {
static $check = array(\'\"\', \'>\', \'<\', \'\\\'\', \'(\', \')\', \'CONTENT-TRANSFER-ENCODING\');
if(isset($_GET[\'formhash\']) && $_GET[\'formhash\'] !== formhash()) {
system_error(\'request_tainting\');
}
if($_SERVER[\'REQUEST_METHOD\'] == \'GET\' ) {
$temp = $_SERVER[\'REQUEST_URI\'];
} elseif(empty ($_GET[\'formhash\'])) {
$temp = $_SERVER[\'REQUEST_URI\'].file_get_contents(\'php://input\');
} else {
$temp = \'\';
}
if(!empty($temp)) {
$temp = strtoupper(urldecode(urldecode($temp)));
foreach ($check as $str) {
if(strpos($temp, $str) !== false) {
system_error(\'request_tainting\');
}
}
}
return true;
}
修改为
private function _xss_check() {
$temp = strtoupper(urldecode(urldecode($_SERVER[\'REQUEST_URI\'])));
if(strpos($temp, \'<\') !== false || strpos($temp, \'\"\') !== false || strpos($temp, \'CONTENT-TRANSFER-ENCODING\') !== false) {
system_error(\'request_tainting\');
}
return true;
}