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

12下一頁
返回列表 發帖
查看: 11017|回復: 12

Discuz! x 3或以上版本 ,游客搜索不了的解決方法!

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻
23 點
金幣
351 個
樓主
發表于 2019-7-18 20:06:55 | 只看樓主 |只看大圖 |倒序瀏覽 |閱讀模式


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

解決方案

查看代碼

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


更新緩存后測試看看。


回復

使用道具 舉報

2

主題

34

回帖

70

積分

漸入佳境

貢獻
1 點
金幣
26 個
沙發
發表于 2019-7-18 22:11:54 | 只看Ta
本帖最后由 wuyou 于 2019-7-18 22:25 編輯

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

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


回復

使用道具 舉報

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻
23 點
金幣
351 個
板凳
 樓主| 發表于 2019-7-19 00:09:19 | 只看Ta
wuyou 發表于 2019-7-18 22:11
所有論壇都是游客不能搜索,這個DZ程序自己的問題,我也試下樓主的這個解決方案。

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

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

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

要修改一下程序,游客才能搜索?。?/td>
回復

使用道具 舉報

12

主題

124

回帖

183

積分

漸入佳境

貢獻
0 點
金幣
41 個
地板
發表于 2019-7-19 19:04:28 | 只看Ta
不錯,收藏了,為何這么久了官方一直不更新。
回復

使用道具 舉報

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻
23 點
金幣
351 個
5#
 樓主| 發表于 2019-7-19 19:21:21 | 只看Ta
yehui2512 發表于 2019-7-19 19:04
不錯,收藏了,為何這么久了官方一直不更新。

讓游客搜索,免注冊;論壇想興旺也難。相信這是官方不重視原因吧!
回復

使用道具 舉報

12

主題

124

回帖

183

積分

漸入佳境

貢獻
0 點
金幣
41 個
6#
發表于 2019-7-19 20:30:33 | 只看Ta
allthebest 發表于 2019-7-19 19:21
讓游客搜索,免注冊;論壇想興旺也難。相信這是官方不重視原因吧!

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

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

回復

使用道具 舉報

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻
23 點
金幣
351 個
7#
 樓主| 發表于 2019-7-19 20:51:02 | 只看Ta
yehui2512 發表于 2019-7-19 20:30
不是為了讓游客搜索。而是出個好看的、友好的“界面提示”。

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

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

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

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

使用道具 舉報

2

主題

34

回帖

70

積分

漸入佳境

貢獻
1 點
金幣
26 個
8#
發表于 2019-7-19 22:11:13 | 只看Ta
哈哈,游客不讓搜索,不符合用戶體驗。
回復

使用道具 舉報

12

主題

124

回帖

183

積分

漸入佳境

貢獻
0 點
金幣
41 個
9#
發表于 2019-7-19 22:17:33 | 只看Ta
本帖最后由 yehui2512 于 2019-7-20 06:15 編輯
allthebest 發表于 2019-7-19 20:51
作為站長,沒必要用游客身份去搜索。

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

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

再加上幾條PHP錯誤。

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


回復

使用道具 舉報

12

主題

124

回帖

183

積分

漸入佳境

貢獻
0 點
金幣
41 個
10#
發表于 2019-7-19 22:19:07 | 只看Ta
可以改為提示,需要注冊成為用戶才能使用搜索功能啊。用戶一點“注冊”,直接引導到注冊頁面,不是更好么。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

  • 關注公眾號
  • 有償服務微信
  • 有償服務QQ

手機版|小黑屋|Discuz! 官方交流社區 ( 皖ICP備16010102號 |皖公網安備34010302002376號 )|網站地圖|star

GMT+8, 2025-7-1 21:28 , Processed in 0.063804 second(s), 11 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關燈 在本版發帖
有償服務QQ
有償服務微信
返回頂部
快速回復 返回頂部 返回列表