discu采集器:“您当前的访问请求当中含有非法字符"解决方案!

admin2个月前未分类43

https://www.dismall.com/forum.php?mod=viewthread&tid=9364&page=1

https://www.feifanju.com/dz3-4huochetou-xss.html


DZ3.4使用火车头采集或者其他采集软件入库失败提示非法字符解决办法

关于Discuz!中“您当前的访问请求当中含有非法字符,已经被系统拒绝”的问题,在添加或更新文章的时候经常出现,经测试发现出现这种情况更多的在使用工具(如火车头采集器)批量发布文章时出现,仔细分析发现,当发布的正文内容出现特殊符号(&,/,<,>等)时出现这样的错误提示。

出现这样的错误主要是因为Discuz!系统的_xss_check()函数原本的意义是为了论坛安全,防止XSS攻击,一般网站使用是不会出现什么问题的,但是有些网站要接入第三方接口,当第三方接口向本站post数据的时候就会报”您当前的访问请求当中含有非法字符,已经被系统拒绝”,本文介绍一种简单的修改方法避免此错误。

解决方案如下:

\source\class\discuz的discuz_application.php

查找如下代码(在360行左右)

1private function _xss_check()

 

然后在下面这段代码后面

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

增加以下代码,你的api接口文件,替换为你自己接口文件名称,例如:”caiji.api.php

1/*采集接口放过*/
2         $tempS = (urldecode(urldecode($_SERVER['REQUEST_URI'])));
3
4         if(strpos($tempS,'你的api接口文件') !== false){
5            return true;
6        }

 

修改完的完整代码为

01private function _xss_check() {
02
03static $check array('"''>''<''\'''('')''CONTENT-TRANSFER-ENCODING');
04/*采集接口放过*/
05$tempS = (urldecode(urldecode($_SERVER['REQUEST_URI'])));
06
07if(strpos($tempS,'你的api接口文件') !== false){
08return true;
09}
10
11if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {
12if(constant('CURMODULE') == 'logging' && isset($_GET['action']) && $_GET['action'] == 'logout') {
13header("HTTP/1.1 302 Found");
14header("Location: index.php");
15exit();
16else {
17system_error('request_tainting');
18}
19}
20
21if($_SERVER['REQUEST_METHOD'] == 'GET' ) {
22$temp $_SERVER['REQUEST_URI'];
23elseif(empty ($_GET['formhash'])) {
24$temp $_SERVER['REQUEST_URI'].http_build_query($_POST);
25else {
26$temp '';
27}
28
29if(!empty($temp)) {
30$temp strtoupper(urldecode(urldecode($temp)));
31foreach ($check as $str) {
32if(strpos($temp$str) !== false) {
33system_error('request_tainting');
34}
35}
36}
37
38return true;
39}


相关文章

小工具

GIZ压缩检测https://www.giftofspeed.com/gzip-test/https://tool.chinaz.com/gzips    ...

Linux常用命令手册

LINUX命令大全关机/重启/注销常用命令作用shutdown -h now即刻关机shutdown -h 1010分钟后关机shutdown -h 11:0011:00关机shutdown -h +...

discuz插件上传后台找不到无法安装

https://abc.com/admin.php?action=plugins&operation=import&dir=XXX(插件目录名称)...

模板

discuzhttps://www.diszz.net/aid-19-2.html jiayouya Jia123456https://www.moqu8.com/thread-7719-1-1.ht...

Discuz帖子刷新后阅读数进行随机值增加方法

Discuz x3.4帖子浏览数的修改方法: 1、打开文件夹source\module\forum下的forum_viewthread.php,查找 t('forum_thread')...

宝塔计划任务定时删除系统日志(脚本):

find /www/backup/database -name "*.gz" -exec rm -rf {} \;find /www/backup/site -name "...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。