故障描述:
' f. ]# w: ~9 L0 E- |. F* t- [退出登录时出现”您当前的访问请求当中含有非法字符,已经被系统拒绝“错误。
" W: w8 {8 {/ F* O+ h" A" a3 b
解决方法:
! U" o: j( S" `( l, j2 N
打开 sourceclassdiscuzdiscuz_application.php 文件
6 Y: B) t* a) a0 }3 D
找到
+ c8 t1 R0 m% T) @* f; p& O+ E
private function _xss_check() {
1 g% A7 `) {; J: J9 d, f
: D5 h: C+ g6 t6 E0 ?+ y" N5 [
static $check = array('"', '>', '<', ''', '(', ')', 'CONTENT-TRANSFER-ENCODING');
; @4 j5 {% Z- b) J \
+ K. F) O& Y; S" Q; I' [
if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {
, B6 Z$ i& x0 R) {# ]6 B: m system_error('request_tainting');
+ ?0 i# ^$ k* G1 u; T$ n4 `; _' J) U
}
* \; B$ f P) m9 y
" h9 ?9 L) H. ] if($_SERVER['REQUEST_METHOD'] == 'GET' ) {
( m" B- }+ c$ |: X) ~2 N $temp = $_SERVER['REQUEST_URI'];
: _; `3 g5 ]# k+ C; Q } elseif(empty ($_GET['formhash'])) {
! a$ D/ L% N; B; m1 i: b* } $temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');
/ K+ c( u7 a i' k } else {
! x$ o& H" E% ?! T$ R. f+ I- _
$temp = '';
+ D+ n: P4 J' j5 {2 u* I }
/ E' O; H" J; w( d& N& O9 f) b# L3 c v- M
if(!empty($temp)) {
" m, A7 z- K& [! b, \/ n
$temp = strtoupper(urldecode(urldecode($temp)));
[) N9 {# g9 |$ s8 | foreach ($check as $str) {
- v6 M7 q3 s. V6 |
if(strpos($temp, $str) !== false) {
. y# U" F9 C A$ t( f4 `+ U system_error('request_tainting');
. U: ?& F2 v' ^0 {% F- a3 {
}
) H) |) X* e" W/ {' k2 v
}
0 P8 S; b# D' s }
& i- l: \/ A8 h6 D
( u. a) d* {- E* J8 } return true;
1 |- Q. |( `6 X6 p" @
}
, D+ {; G7 q2 d
修改为
0 S+ c, E) C& W- N8 P( Q7 \& V$ o S5 Eprivate function _xss_check() {
( ?$ \, ^5 y& C. }
$temp = strtoupper(urldecode(urldecode($_SERVER['REQUEST_URI'])));
5 [* d/ P! @, R: g4 G" l2 L4 C if(strpos($temp, '<') !== false || strpos($temp, '"') !== false || strpos($temp, 'CONTENT-TRANSFER-ENCODING') !== false) {
7 r) }1 ~% b/ n. @& G system_error('request_tainting');
5 ?% b, E- ~, ^6 V7 B
}
. d! V! _1 q" R F
return true;
2 Q1 d$ @* M# S2 m5 X' C
}
{( D/ r! E- g) d. `