WordPress页面静态缓存时间过长导致的 Nonce 失效的问题
我们知道,为了防CSRF攻击,WordPress使用随机数Nonce来验证用户操作,默认设置下,WordPre…
我们知道,为了防CSRF攻击,WordPress使用随机数Nonce来验证用户操作,默认设置下,WordPress生成的Nonce 有效期是24小时,在Nonce开始的24小时内,某个操作的Nonce值都是一样的。
有时候这个nonce是输出的页面中的(比如使用 wp_nonce_field() 函数生成的表单字段),如果我们使用了静态页面缓存,这个 Nonce 值会和该页面中的其他 HTML 一起被缓存起来。如果静态页面缓存的有效期大于 24 小时。那么 24 小时后,页面中缓存的 Nonce 就会失效。再使用这个 Nonce 值去验证请求的时候,就会导致验证失败。
怎么解决这个问题呢?最简单的办法就是减小静态页面缓存有效期,把页面缓存的过期时候设置为小于 24 小时的数字。
至于有没有其他更好的方法来避免这个问题,我暂时还没时间测试,先留个坑,找到了更好的办法之后,再来填上。
类别:WordPress 教程精选、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!