久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: Discuz! x 3或以上版本 ,游客搜索不了的解決方法! [打印本頁]

作者: allthebest    時間: 2019-7-18 20:06
標題: Discuz! x 3或以上版本 ,游客搜索不了的解決方法!
本帖最后由 allthebest 于 2019-7-19 06:45 編輯

游客時,在未登錄的狀態下搜索 出現”您當前的訪問請求當中含有非法字符,已經被系統拒絕“錯誤。

解決方案

查看代碼

\source\class\discuz的discuz_application.php
  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.         }
復制代碼


替換為以下代碼

  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.         }
復制代碼


更新緩存后測試看看。



作者: wuyou    時間: 2019-7-18 22:11
本帖最后由 wuyou 于 2019-7-18 22:25 編輯

所有論壇都是游客不能搜索,這個DZ程序自己的問題,我也試下樓主的這個解決方案。

通過以上方法,確實解決了DZ游客搜索的問題, 感謝哈。



作者: allthebest    時間: 2019-7-19 00:09
wuyou 發表于 2019-7-18 22:11
所有論壇都是游客不能搜索,這個DZ程序自己的問題,我也試下樓主的這個解決方案。

通過以上方法,確實解決 ...

Discuz! X 2.5或以下版本,游客搜索沒問題。

我自己測試,Discuz! x 3.2 或以后版本,游客搜索都會出現錯誤提示。

要修改一下程序,游客才能搜索啊!
作者: yehui2512    時間: 2019-7-19 19:04
不錯,收藏了,為何這么久了官方一直不更新。
作者: allthebest    時間: 2019-7-19 19:21
yehui2512 發表于 2019-7-19 19:04
不錯,收藏了,為何這么久了官方一直不更新。

讓游客搜索,免注冊;論壇想興旺也難。相信這是官方不重視原因吧!
作者: yehui2512    時間: 2019-7-19 20:30
allthebest 發表于 2019-7-19 19:21
讓游客搜索,免注冊;論壇想興旺也難。相信這是官方不重視原因吧!

不是為了讓游客搜索。而是出個好看的、友好的“界面提示”。

下面這樣的確實不好看吧。
(, 下載次數: 47)

作者: allthebest    時間: 2019-7-19 20:51
yehui2512 發表于 2019-7-19 20:30
不是為了讓游客搜索。而是出個好看的、友好的“界面提示”。

下面這樣的確實不好看吧。

作為站長,沒必要用游客身份去搜索。

當游客搜索只看到不明白頁面訊息,又不能發短消息或發帖提問
要問或要搜索,就自然會注冊

注冊用戶才能發帖,帖子多才能引入更多游客訪問;日子久了,會員才多起來,論壇才能興旺火起來呢!

作者: wuyou    時間: 2019-7-19 22:11
哈哈,游客不讓搜索,不符合用戶體驗。
作者: yehui2512    時間: 2019-7-19 22:17
本帖最后由 yehui2512 于 2019-7-20 06:15 編輯
allthebest 發表于 2019-7-19 20:51
作為站長,沒必要用游客身份去搜索。

當游客搜索只看到不明白頁面訊息,又不能發短消息或發帖提問

直接出現 ”您當前的訪問請求當中含有非法字符,已經被系統拒絕“

再加上幾條PHP錯誤。

對普通游客,是不是太暴力了。。



作者: yehui2512    時間: 2019-7-19 22:19
可以改為提示,需要注冊成為用戶才能使用搜索功能啊。用戶一點“注冊”,直接引導到注冊頁面,不是更好么。
作者: allthebest    時間: 2019-7-19 22:21
yehui2512 發表于 2019-7-19 22:17
直接出現 ”您當前的訪問請求當中含有非法字符,已經被系統拒絕“

再加上幾天PHP錯誤。

對游客太好,對興旺論壇沒好處呢
作者: Sonicboy    時間: 2019-7-21 02:52
收藏,今天用游客搜索以為是程序有問題了,起床就把這個改掉。
作者: yezirui    時間: 2023-2-27 00:03
allthebest 發表于 2019-7-19 22:21
對游客太好,對興旺論壇沒好處呢

游客以為網站GG了,就不注冊了




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0