不是黑客、不是红客、更不是骇客、我只是她生命中的一个过客! 收藏本站
登陆 / 注册 搜索

阅读: 1.8K   回复: 2

[# PHP] Discuz 游客搜索出现 您当前访问请求中含有非法字符

小执念 古黑浩劫论坛大牛 2019-11-18 17:17 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
一、为什么会出现这个问题?

这是因为开启了主页/帖子页文件缓存,然后搜索表单的 formhash 也会被缓存,就会导致后面的游客 formhash 与当前不一致。

由于 Discuz! X 的 Xss 安全机制,会对搜索内容进行安全检查,如果 formhash 不一样,就会出现 "您当前访问请求中含有非法字符",已被系统拒绝" 。

二、如何解决?

解决方案:将这个提示改为跳转到 search.php 如果你启用了游客搜索,就会跳转到 search.php 页面,没有没有开启游客搜索,就会提示登陆。

打开

  1. /source/class/discuz/discuz_application.php
复制代码


查找

  1. if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash())
复制代码


修改成如下:
  1.        if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {
  2.             if(CURSCRIPT == search && !$_G['uid']){ //判断是否是游客 是否是搜索页
  3.             header("Location: https://".$_SERVER['HTTP_HOST']."/search.php"); // 302 跳转到 search.php
  4.             }
  5.             else{
  6.             system_error('request_tainting');
  7.             }
  8.         }
复制代码



修改后如图:
Discuz 游客搜索出现 您当前访问请求中含有非法字符 您当前访问请求中含有非法字符.png

上一篇
下一篇


降临1994 「出类拔萃」 2019-11-18 17:25 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

路过
            
✎______________________________________
          ✎﹏๓₯㎕✉    
            有些人,一辈子都不会在一起,但是可以藏在心里一辈子。
小执念 古黑浩劫论坛大牛 2019-11-29 00:48 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
测试内容高亮
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2021-9-26 05:13 , Processed in 0.021595 second(s), 21 queries , Redis On.

© 2015-2021 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表