rinald_未来往事

Discuz! System Error 您当前的访问请求当中含有非法字符,已经被系统拒绝错误解决

Discuz
Discuz! X3.1 正式版含目前最新版[2014-03-01]在用户退出时偶尔会提示如下错误,特别是数据整合后的站点:

错误代码:
Discuz! System Error
您当前的访问请求当中含有非法字符,已经被系统拒绝
PHP Debug
[Line: 0022]search.php(discuz_application->init)
[Line: 0071]source\class\discuz\discuz_application.php(discuz_application->_init_misc)
[Line: 0552]source\class\discuz\discuz_application.php(discuz_application->_xss_check)
[Line: 0355]source\class\discuz\discuz_application.php(system_error)
[Line: 0017]source\function\function_core.php(discuz_error::system_error)
[Line: 0024]source\class\discuz\discuz_error.php(discuz_error::debug_backtrace)


临时解决方法:
修改 \source\class\discuz下的discuz_application.php文件大约第350行的private function _xss_check()方法:
  1. private function _xss_check() {  
  2.   
  3. static $check = array('"''>''<''\'''('')''CONTENT-TRANSFER-ENCODING');  
  4.   
  5. if(isset($_GET['formhash']) && $_GET['formhash'] !== formhash()) {  
  6. system_error('request_tainting');  
  7. }  
  8.   
  9. if($_SERVER['REQUEST_METHOD'] == 'GET' ) {  
  10. $temp = $_SERVER['REQUEST_URI'];  
  11. elseif(emptyempty ($_GET['formhash'])) {  
  12. $temp = $_SERVER['REQUEST_URI'].file_get_contents('php://input');  
  13. else {  
  14. $temp = '';  
  15. }  
  16.   
  17. if(!emptyempty($temp)) {  
  18. $temp = strtoupper(urldecode(urldecode($temp)));  
  19. foreach ($check as $str) {  
  20. if(strpos($temp$str) !== false) {  
  21. system_error('request_tainting');  
  22. }  
  23. }  
  24. }  
  25.   
  26. return true;  
  27. }  



  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. }  
原文作者:rinald
原文地址:http://fity.cn/post/455.html
互联网技术更新较快,本站很多文章具有实效性,我会及时更新原文,但转载的文章无法通知更新。为了不给读者造成困惑或误导,请您在转载时保留此出处信息,尊重别人也是尊重自己。

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。