RSS订阅华夏名网虚拟主机折扣优惠
你的位置:首页 » 常见问题 » 正文

Discuz! 搜索 或 退出用户的时候 出现"您当前的访问请求当中含有非法字符"解决方法

选择字号: 超大 标准 发布时间:2015年02月09日 | 作者:xi88 | 0个评论 | 4255人浏览

Discuz! 搜索 或 退出用户的时候 出现<您当前的访问请求当中含有非法字符> 解决方法

某些虚拟主机故障描述退出登录时出现”您当前的访问请求当中含有非法字符,已经被系统拒绝“错误。

discuz的此问题解决方案如下:

\source\class\discuz\discuz_application.php

查找350行左右的以下代码


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;
 }

懒人包下载,替换\source\class\discuz\discuz_application.php 这个文件就可以了 ,点此下载

标签:discuz

0

文章作者:华夏名网
本文地址:http://hubeidc.com/idc/201502/09610.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

湖北数据虚拟主机
    最新文章 | 随机文章 | 热门文章
标签列表
  • 订阅湖北数据内容更新