立即注册 找回密码

QQ登录

只需一步,快速开始

查看: 1340|回复: 0

[Discuz 通用教程] 解决Discuz3.2 出现“您当前的访问请求当中含有非法字符“方法

[复制链接]
发表于 2023-11-20 09:02:38 | 显示全部楼层 |阅读模式
道勤网-数据www.daoqin.net

亲注册登录道勤网-可以查看更多帖子内容哦!(包涵精彩图片、文字详情等)请您及时注册登录-www.daoqin.net

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

x
discuz3.2 出现“您当前的访问请求当中含有非法字符“这个问题今天是第一次看到了,下面道勤小编就一起来看看这个问题的解决办法吧。

错误提示:

Discuz! System Error

您当前的访问请求当中含有非法字符,已经被系统拒绝
PHP Debug

[Line: 0022]search.php(discuz_application->init)
[Line: 0071]source/class/discuz/discuz_application.php(discuz_application->_init_misc)
[Line: 0552]source/class/discuz/discuz_application.php(discuz_application->_xss_check)
[Line: 0355]source/class/discuz/discuz_application.php(system_error)
[Line: 0023]source/function/function_core.php(discuz_error::system_error)
[Line: 0024]source/class/discuz/discuz_error.php(discuz_error::debug_backtrace)

Discuz官方给出的解决方法:

程序目录下载修改discuz_application.php代码。位置:\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后台更新缓存,看看能解决问题么。


道勤主机提供365天*24小时全年全天无休、实时在线、零等待的售后技术支持。竭力为您免费处理您在使用道勤主机过程中所遇到的一切问题! 如果您是道勤主机用户,那么您可以通过QQ【792472177】、售后QQ【59133755】、旺旺【诠释意念】、微信:q792472177免费电话、后台提交工单这些方式联系道勤主机客服! 如果您不是我们的客户也没问题,点击页面最右边的企业QQ在线咨询图标联系我们并购买后,我们为您免费进行无缝搬家服务,让您享受网站零访问延迟的迁移到道勤主机的服务!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

道勤网- 推荐内容!上一条 /2 下一条

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_fhlb! !jz_lxwm! !jz_gfqqq!

关于我们|手机版|小黑屋|地图|【道勤网】-www.daoqin.net 软件视频自学教程|免费教程|自学电脑|3D教程|平面教程|影视动画教程|办公教程|机械设计教程|网站设计教程【道勤网】 ( 皖ICP备15000319号-1 )

GMT+8, 2024-11-10 11:26

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

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