[discuz使用] 抖音中打开discuz网站,显示“含有非法字符“解决方法

[复制链接]
查看37 | 回复0 | 7 天前 | 显示全部楼层 |阅读模式
<
在抖音中,通过私信给朋友发送链接,点击链接,抖音跳转时,会在链接后面添加上”need_out_animation=“等参数,致使discuz打开的时候显示
”您当前的访问请求当中含有非法字符,已经被系统拒绝“

1107_001.png

解决方案:\source\class\discuz的discuz_application.php 查找

  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.             }
复制代码
注:这是修改过的代码,是为了解决其它”非法字符“。修改过程见:http://www.myele.com/thread-10184-1-1.html

在代码中添加:
  1.                 if(strpos($temp, 'NEED_OUT_ANIMATION') !== false ) {
  2.                         $index= strpos($temp, 'NEED_OUT_ANIMATION');
  3.                         $temp = substr($temp,0, $index-1);//使用substr函数从字符串的开头截取至$index指定字符的位置
  4.                         }
复制代码

修改后的代码:
  1. private function _xss_check() {
  2.                 $temp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));

  3.                 //检查链接中是否有NEED_OUT_ANIMATION参数,如果有,则是从抖音跳转过来的链接,将其删除,以解决“非法字符问题”。
  4.                 if(strpos($temp, 'NEED_OUT_ANIMATION') !== false ) {
  5.                         $index= strpos($temp, 'NEED_OUT_ANIMATION');
  6.                         $temp = substr($temp,0, $index-1);//使用substr函数从字符串的开头截取至$index指定字符的位置
  7.                         }

  8.                 if(strpos($temp, '<') !== false || strpos($temp, '"') !== false || strpos($temp, 'CONTENT-TRANSFER-ENCODING') !== false) {
  9.                                 system_error('request_tainting');
  10.                 }
  11.                 return true;
  12.         }
复制代码




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

本版积分规则