电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1714|回复: 0

DISCUZ!X3.1升级后,出现“您当前的访问请求当中含有非法字符“解决方法

[复制链接]
admin 发表于 2014-6-25 17:44:57 | 显示全部楼层 |阅读模式
解决方案如下:
在文件\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;
}

网上还有一种办法是使用官方提供的替换文件。
discuz_application.zip
直接解压上传到\source\class\discuz目录下,替换老的discuz_application.php文件即可
但是我试过了在我这里无效,不过还是提供出来,以方便其他人用,  点击下载   discuz_application.zip

您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-11-23 20:26 , Processed in 0.143553 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表