【腾讯云】11.11 云上盛惠,云产品限时抢购,1核2G云服务器首年88元

搜搜吧

查看: 63|回复: 0

[discuz] Discuz!您当前的访问请求当中含有非法字符,已经被系统拒绝解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2020-10-19 12:05
  • 签到天数: 201 天

    [LV.7]常住居民III

    硕士生

    9749

    主题

    1万

    帖子

    3万

    积分

    Rank: 8Rank: 8

    UID
    9
    威望
    -83
    贡献
    633
    在线时间
    92 小时
    注册时间
    2014-5-20

    社区QQ达人

    发表于 2020-10-6 21:19:47 | 显示全部楼层 |阅读模式
    关于discuz!中“您当前的访问请求当中含有非法字符,已经被系统拒绝”的问题,在添加或更新文章的时候经常出现,经测试发现出现这种情况更多的在使用工具(如火车头采集器)批量发布文章时出现,仔细分析发现,当发布的正文内容出现特殊符号(&,/,<,>等)时出现这样的错误提示。
    出现这样的错误主要是因为Discuz!系统的_xss_check()函数原本的意义是为了论坛安全,防止XSS攻击,一般网站使用是不会出现什么问题的,但是有些网站要接入第三方接口,当第三方接口向本站post数据的时候就会报”您当前的访问请求当中含有非法字符,已经被系统拒绝”,本文介绍一种简单的修改方法避免此错误。
    解决方案如下:
    \source\class\discuz的discuz_application.php
    查找如下代码(在360行左右),并替换
    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. }
    复制代码
    代替为131011   source\class\discuz\iscuz_application.php    private function _xss_check()

    350行左右
    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. }
    复制代码


    搜搜吧社区温馨提示:
    搜搜吧(www.sosoba.org)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
    1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容
    2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生
    3、搜搜吧影视资源均收集自互联网,没有提供影片资源存储,也未参与录制上传,若本站收录的资源涉及您的版权或知识产权或其他利益,我们会立即删除
    4、搜搜吧,删帖,投诉,举报,侵权,若本站侵犯您的权益,附上身份及权利证明,请直接发送邮件到 kefu-sosoba@qq.com 我们将在一个工作日内删除
    Powered by www.sosoba.org Copyright © 2013-2020 搜搜吧社区 小黑屋|手机版|地图|联系站长|腾讯云代金券|帮助中心|公共DNS|seo优化服务|搜搜吧
    广告服务/项目合作/会员购买:QQ 侵权举报邮箱: kefu-sosoba@qq.com  搜搜吧建站时间:创建于2013年07月23日
    免责声明:本站所有的内容均来自互联网以及第三方作者自由发布,版权归原作者版权所有,搜搜吧不承担任何的法律责任,若有侵权请来信告知,我们立即删除!

    GMT+8, 2020-10-29 13:00 , Processed in 0.177131 second(s), 8 queries , MemCache On.

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