如何将WordPress Cookie更改为仅会话

时间:2021-04-03 作者:Synchro

我不希望我的WP站点设置任何持久cookie。登录时的会话cookie是我想要允许的全部。我不想征求访客的同意,所以我需要确保没有设置。不幸的是,WP使这变得很困难。

我看到wp_generate_auth_cookie 函数需要一个到期时间戳,所以它不能设置仅会话的cookie。在WP设置的cookie中,有一个很奇怪。wordpress_test_cookie 是唯一一套没有到期的产品,因此WP显然能够做到这一点。奇怪的是,这个特定的cookie被设置为仅会话,这可能意味着它作为cookie设置检查的实用性受到限制。

我怎样才能说服WP不要那样设置cookies?插件在没有同意或警告的情况下设置cookie也是很常见的,我希望能够阻止他们这样做。

我也在寻找另一种方法来解决这个问题:在我的nginx反向代理中使用Lua脚本来修改或删除经过的Cookie,从中去除过期值,并可能确保所有http-only, secure, 和sameSite 已设置标志。

是的,我完全知道这可能会损害WordPress使用的某些方面,一些插件也会损坏,但访客隐私和法律优先。

是否有插件或其他解决方案可以帮助实现这一点?

1 个回复
SO网友:Andrew

这个wp_generate_auth_cookie() 函数是pluggable function, 这意味着您可以在插件中定义一个同名函数,并且将使用您的版本代替WordPress核心函数。

然而,可插拔函数的数量有限。如果您想要一个适用于所有cookie的广泛解决方案,那么较低级别的Lua方法将是一个更好的选择。