去评论
dz插件网

后台 运行记录中 提示非法字符报错的解读

admin
2020/07/07 09:34:28
最近在后台 - 工具 - 运行记录 - 系统错误 中,频繁的出现一个报错
您当前的访问请求当中含有非法字符,已经被系统拒绝
PHP:home.php:0024 -> source/class/discuz/discuz_application.php:0071 -> source/class/discuz/discuz_application.php:0587 -> source/class/discuz/discuz_application.php:0368 -> source/function/function_core.php:0023 -> source/class/discuz/discuz_error.php:0024
User: uid=0; IP=46.229.168.139; RIP:46.229.168.139 Request: /home.php?ac=favorite&formhash=a1813d4c&handlekey=favoriteforum&id=37&mod=spacecp&type=forum
正好有空就分析了一下。
从反馈的地址上来看,有ac、formhash、handlekey、id、mod、type。从这几个参数来看,可以断定这个地址的来源是主题列表页中的收藏本版块。

首先,根据反馈的地址可以发现似乎这几个参数的先后顺序不对,但因为discuz的任何一个地址,当参数先后顺序不对时,都可以正确访问,那么这里就排除了因为顺序不对导致的非法字符报错。
其次,在这些参数中,mod、type、ac、id这些值都不足以造成非法字符报错,最多就是不存在的提示。(注意这里强调了报错和提示的区别)
最后,我们就可以把重点放在formhash上了。这个值我们可以把它理解为是一个密钥,如果这个值是随机输入的,而并非通过主题列表页 收藏版块的地址中获得的,那么就会出现非法字符报错了。
为了验证这一说法,百度一下IP地址。发现是一个国外IP。再加上uid是0,以及所有的报错所反馈的地址有着统一的先后顺序,那么就确认了这是一个国外的蜘蛛。
所以这个报错不会产生任何印象。