首页 知识 正文

zblog登陆时总是提示验证码错误怎么办?

zblog登陆时总是提示验证码错误,这是一个很小众的问题,但是遇到之后也是麻烦。如果你也遇到了同样的问题,而且你的网站同时也开启了cdn的话,那么大概率跟本文所述问题一样,如果没有这两个条件,可以跳过本文不用看了去寻求其他解决方案。

问题描述:

今天遇到一个客户反馈说他的zblog网站后台登录会一直提示“验证码错误”导致无法登录后台,尽管多次尝试并且保证验证码输入的是正确的情况下还是会提示“验证码错误”。

于是我打开了他的网站测试确实是这么个问题,开始排查。

问题排查:

定位到zblog的验证码验证函数“CheckValidCode”,函数如下图:

zblog登陆时总是提示验证码错误怎么办?

函数大概逻辑就是获取到用户提交的验证码,然后和验证码生成时保存的一个cookie通过一系列加密解密后比对。两个值比对一致就通过,否则就提示验证码错误。

直接打印比对的两个值,发现两个值确实不一致。

于是开始把两个值里面组成的变量一个一个打印出来对比。

问题定位:

通过以上步骤终于确定了问题所在,“hash_pre”这个参数里面有一个获取用户提交时的ip地址“GetGuestIP()”,这个值一直在变动,按道理这个值是固定的,因为用户电脑的ip地址在提交这段时间内肯定是一样的。

基本可以确定就是这里的问题,去掉了这个值之后测试正常。

问题原因:

在跟客户沟通时确定用户网站开启了CDN,而当你为网站启用了 CDN(内容分发网络)后,用户访问网站时,请求会先经过 CDN 节点,然后再转发到你的服务器。由于 CDN 节点的 IP 地址可能会动态变化,因此你直接获取到的 IP 地址通常是 CDN 节点的 IP,而不是用户的实际 IP 地址。

所以就导致了这个问题。

解决方案:

打开zblog后台,打开网站设置-全局设置-安全增强,关掉这个开关即可

zblog登陆时总是提示验证码错误怎么办?

总结:

当你网站开启了cdn,请务必关闭网站设置里面的安全增强功能,否则就会因为获取不到用户的真实ip导致登录不上后台一直提示验证码错误了。

本文转载自互联网,如有侵权,联系删除

本文地址:http://lizhi.liaojinhua.com/post/36.html

相关推荐