加大WordPress的随机数nonce过期时间解决缓存过期错误问题

加大WordPress的随机数nonce过期时间解决缓存过期错误问题插图

有时候在登录Wordpress时报错:随机数校验失败,或者认证失败等等。其实,这是WordPress的随机数和缓存导致的问题。其实就是其中一个人把登录页面缓存了,而缓存时间已经超过12个小时。Wordpress默认随机数nonce时间在12-24小时之内就会失效。只能清空缓存才能再次正常登陆。接下来搬主题就分享一下加大WordPress的随机数nonce过期时间解决缓存过期错误问题。

针对上面的问题,要么清空登录页面的缓存,要么把WordPress随机数nonce有效时间改成48小时,网页缓存(WP Super Cache等缓存插件)时间改成24小时。

实际上,WP会为那些涉及安全问题的地方,比如ajax加载之类,会提供一个随机数,每个用户不同。而这个随机数有个有效期,默认为24小时。事实上,按照WP官方描述,这个时间上是12-24小时之间,随机失效。所以,当使用各类WordPress缓存插件缓存页面超过12小时,这个随机数就有可能失效,直接导致认证失败,登陆失败等问题。下面,是Wordpress官方的描述:

Note that just as a WordPress nonce is not “a number used once”, nonce lifetime isn’t really nonce lifetime. WordPress uses a system with two ticks (half of the lifetime) and validates nonces from the current tick and the last tick. In default settings (24h lifetime) this means that the time information in the nonce is related to how many 12h periods of time have passed since Unix epoch. This means that a nonce made between midday and midnight will have a lifetime until midday the next day. The actual lifetime is thus variable between 12 and 24 hours. 

请注意,就像WordPress随机数不是“一个数字只能使用一次”一样,随机数生存期并不是真正的随机数生存期。WordPress使用具有两个刻度(生命周期的一半)的系统,并从当前刻度和最后一个刻度验证随机数。在默认设置(生存期为24h)中,这意味着随机数中的时间信息与自Unix时代以来经过了12h的时间段有关。这意味着在午夜和午夜之间创建的随机数将一直存在,直到第二天的午夜为止。因此,实际寿命在12到24小时之间变化。

然后,官方给了一个php代码,添加到主题function.php文件中,即可解决问题。

add_filter( 'nonce_life', function () { return 48 * HOUR_IN_SECONDS; } );
加大WordPress的随机数nonce过期时间解决缓存过期错误问题插图1

上述代码,将WP随机数有效期设置为48小时,实际寿命在24-48小时内变化。这时,我们需要将我们的WordPress缓存插件的缓存有效期设置为24小时就可以了,比如用的是LiteSpeed Cache插件,那需要设置TTL时间为24小时,也就是86400秒。

加大WordPress的随机数nonce过期时间解决缓存过期错误问题插图2

也就是说,如果你上面的代码不添加的话,那也就是不修改这个WordPress随机数时间,那么你的缓存时间要修改到12小时即可。

 收藏 (0) 更新不易,打赏吧

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《加大WordPress的随机数nonce过期时间解决缓存过期错误问题》
文章链接:https://www.banzhuti.com/wordpress-nonce-time.html
分享到: 生成海报
版权免责声明

① 本站提供的资源(插件或主题)均为网上搜集,如有涉及或侵害到您的版权请立即通知我们。
② 本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
③ 因代码可变性,不保证兼容所有浏览器、不保证兼容所有版本的WP、不保证兼容您安装的其他插件。
④ 本站保证所提供资源(插件或主题)的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤ 由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥ 使用该资源(插件或主题)需要用户有一定代码基础知识!另本站提供汉化使用安装教程,仅供参考。
⑦ 有时可能会遇到部分字段无法汉化,同时请保留作者汉化宣传信息,谢谢!
⑧ 本站资源售价只是赞助和汉化辛苦费,收取费用仅维持本站的日常运营所需。
⑨ 如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑩ 如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

WordPress主题 插件 建站 汉化

定制服务联系我们
切换注册

登录

点击按钮进行验证

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活