找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8238|回复: 1

[原创教程] Discuz!您当前的访问请求当中含有非法字符,解决方案

[复制链接]
发表于 2022-1-12 23:19:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

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

×
Discuz!系统的_xss_check()函数原本的意义是为了论坛安全,防止XSS攻击,一般网站使用是不会出现什么问题的,但是有些网站要使用设置远程变量或私人变量的API,当API向本站post数据的时候就会报"您当前的访问请求当中含有非法字符,已经被系统拒绝",本文介绍一种简单的修改方法避免此错误。

解决方案如下:

\source\class\discuz的discuz_application.php
查找
[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;

}
替换为:

[PHP] 纯文本查看 复制代码
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;

}

转载请注明来源于:新秀网络验证论坛

发表于 2022-1-13 10:16:13 | 显示全部楼层
也可以通过url编码,进行规避此类问题。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|新秀网络验证系统API[软著登字第13061951号] ( 豫ICP备2021033257号-1 )

GMT+8, 2026-1-12 08:39 , Processed in 0.288261 second(s), 67 queries , Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表
slot777
slot qris
atlas123
KAPAK123
MENARA123
BARONG123
VIRGO123
HORAS123
KAKEK123
ION123
PATEN123
SALAM123
TUYUL123
KUNGLO123
PINTU123
JOKI123
INTI123
JADI123
MENANGBET
JADIJP
ACEH123
TINGGIBET
SUMBER4D
PULANG4D
POLAMAXWIN
INTAN123
dingin4d
paten123
slotsultan
slot sultan