Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] Discuz!x3.1升级20131122后出现“您当前的访问请求当中含有非法字符“解决方法

[复制链接]
m.king 发表于 2013-12-9 18:01:14 | 显示全部楼层 |阅读模式

故障描述:升级最新的x3.1版本((20131122)后,退出登录时出现”您当前的访问请求当中含有非法字符,已经被系统拒绝“错误。



解决方案如下:

\source\class\discuz的discuz_application.php  查找
  1. private function _xss_check() {

  2.                 static $check = array('"', '>', '<', '\'', '(', ')', 'CONTENT-TRANSFER-ENCODING');

  3.                 if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {
  4.                         system_error('request_tainting');
  5.                 }

  6.                 if($_SERVER['REQUEST_METHOD'] == 'GET' ) {
  7.                         $temp = $_SERVER['REQUEST_URI'];
  8.                 } elseif(empty ($_GET['formhash'])) {
  9.                         $temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');
  10.                 } else {
  11.                         $temp = '';
  12.                 }

  13.                 if(!empty($temp)) {
  14.                         $temp = strtoupper(urldecode(urldecode($temp)));
  15.                         foreach ($check as $str) {
  16.                                 if(strpos($temp, $str) !== false) {
  17.                                         system_error('request_tainting');
  18.                                 }
  19.                         }
  20.                 }

  21.                 return true;
  22.         }
复制代码



替换为:

  1. private function _xss_check() {
  2.                 $temp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));
  3.                 if(strpos($temp, '<') !== false || strpos($temp, '"') !== false || strpos($temp, 'CONTENT-TRANSFER-ENCODING') !== false) {
  4.                         system_error('request_tainting');
  5.                 }
  6.                 return true;
  7.         }
复制代码


https://discuz.dismall.com/thread-3485502-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
KiSsゞ 发表于 2013-12-9 18:58:16 | 显示全部楼层
用砂砂的覆盖语言包就好了吧,这个看着有点晕。
回复

使用道具 举报

浅唱つ蓠别曲 发表于 2013-12-9 19:03:23 | 显示全部楼层
直接还不如放个懒人文件呢  这个真心看着头晕
回复

使用道具 举报

北北″ 发表于 2013-12-10 19:43:04 | 显示全部楼层
前排支持呗...
回复

使用道具 举报

WK78.COM 发表于 2014-2-5 01:11:55 | 显示全部楼层
想问下,未被替换的这段代码到底增加了什么?自己之前开发的一个回帖程序,可以正常回复,但升级到0101被丁后就出现这个问题了。这里的解决方案虽然能暂时解决,但我还是想弄明白。如果在不修改discuz_application.php  的情况下,我需要在自己的应用插件php或Html里面添加什么就不会出现这个问题了?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-6 19:33 , Processed in 0.040200 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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