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

返回列表 發(fā)帖
查看: 4813|回復(fù): 4

采集器:“您當(dāng)前的訪問請求當(dāng)中含有非法字符"解決方案!

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻(xiàn)
23 點
金幣
351 個
樓主
發(fā)表于 2021-4-14 00:18:03 | 只看樓主 |倒序瀏覽 |閱讀模式
關(guān)于Discuz!中“您當(dāng)前的訪問請求當(dāng)中含有非法字符,已經(jīng)被系統(tǒng)拒絕”的問題,在添加或更新文章的時候經(jīng)常出現(xiàn),經(jīng)測試發(fā)現(xiàn)出現(xiàn)這種情況更多的在使用工具(如火車頭采集器)批量發(fā)布文章時出現(xiàn),仔細(xì)分析發(fā)現(xiàn),當(dāng)發(fā)布的正文內(nèi)容出現(xiàn)特殊符號(&,/,<,>等)時出現(xiàn)這樣的錯誤提示。

出現(xiàn)這樣的錯誤主要是因為Discuz!系統(tǒng)的_xss_check()函數(shù)原本的意義是為了論壇安全,防止XSS攻擊,一般網(wǎng)站使用是不會出現(xiàn)什么問題的,但是有些網(wǎng)站要接入第三方接口,當(dāng)?shù)谌浇涌谙虮菊緋ost數(shù)據(jù)的時候就會報”您當(dāng)前的訪問請求當(dāng)中含有非法字符,已經(jīng)被系統(tǒng)拒絕”,本文介紹一種簡單的修改方法避免此錯誤。

解決方案如下:

\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. }
復(fù)制代碼


替換為:

  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. }
復(fù)制代碼


更新緩存
回復(fù)

使用道具 舉報

10

主題

76

回帖

96

積分

漸入佳境

貢獻(xiàn)
0 點
金幣
4 個
QQ
沙發(fā)
發(fā)表于 2022-6-12 20:59:41 | 只看Ta
本帖最后由 永遠(yuǎn)是第一次 于 2022-6-12 21:10 編輯

我的采集,里面的代碼都被我替換掉了,依然發(fā)布會有:“您當(dāng)前的訪問請求當(dāng)中含有非法字符",這是為什么?

按照你的修改后,發(fā)布直接顯示:返回的Header:錯誤
回復(fù)

使用道具 舉報

83

主題

2786

回帖

3569

積分

功行圓滿

貢獻(xiàn)
23 點
金幣
351 個
板凳
 樓主| 發(fā)表于 2022-6-12 21:35:48 | 只看Ta
永遠(yuǎn)是第一次 發(fā)表于 2022-6-12 11:59
我的采集,里面的代碼都被我替換掉了,依然發(fā)布會有:“您當(dāng)前的訪問請求當(dāng)中含有非法字符",這是為什么? ...

清空瀏覽器緩存或更換瀏覽器后再看看
回復(fù)

使用道具 舉報

10

主題

76

回帖

96

積分

漸入佳境

貢獻(xiàn)
0 點
金幣
4 個
QQ
地板
發(fā)表于 2022-6-12 21:43:27 | 只看Ta
allthebest 發(fā)表于 2022-6-12 21:35
清空瀏覽器緩存或更換瀏覽器后再看看

我用的火車頭采集器!
回復(fù)

使用道具 舉報

2

主題

95

回帖

126

積分

漸入佳境

貢獻(xiàn)
0 點
金幣
19 個
5#
發(fā)表于 2022-6-15 09:09:58 | 只看Ta

官網(wǎng)下的?好用嗎?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

  • 關(guān)注公眾號
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號 |皖公網(wǎng)安備34010302002376號 )|網(wǎng)站地圖|star

GMT+8, 2025-9-19 00:16 , Processed in 0.095331 second(s), 28 queries .

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表