Wp_logout_url()是否会破坏会话?(注销问题)

时间:2012-09-19 作者:SMacFadyen

我有一个荒谬的问题,把用户从我的网站上注销。基本上,客户有敏感数据wp_logout_url 我重定向到另一个url。这很好,但浏览器会缓存页面,可以通过按BACK查看。

我有没有办法阻止这种情况发生,或者这不是一个无法解决的问题?

该网站受前端登录表单的保护,因此/wp-admin.

2 个回复
最合适的回答,由SO网友:soulseekah 整理而成

这并不奇怪或不常见,这是浏览器的工作方式,页面被缓存并且是浏览器历史的一部分。这并不是WordPress所特有的,而是许多web应用程序所特有的。

提供解决方案也有不同的方法。首先(不是很好的解决方案),clearing the browser history.

另一方面,发送特殊的缓存头,就像推特一样。退房the RFC 有关详细信息。

Making sure a web page is not cached across all browsers 也是一个很好的起点。

您可以为将查看敏感信息的登录用户添加反缓存标头。所有包含敏感信息的页面都必须有这些标题,以便浏览器能够遵守这些标题,并在注销后按后退键重新验证。对于其他所有人(未登录),保持浏览器缓存可用,这通常是一个好主意。

Setting headers in WordPress, 反对is_user_logged_inuser_can 非常直接。

add_action( \'init\', function() {
    /* Force no-cache headers on *ALL* front pages and in *ALL* cases */
    /* Proof of concept, do not use */
    header( \'Cache-Control: no-cache, no-store, must-revalidate\' );
    header( \'Pragma: no-cache\' );
    header( \'Expires: 0\' );
    /* Do same for admin_init to get dashboard to not cache */
} );
通过以上测试,它似乎可以工作,至少在铬合金中是这样。希望这有帮助。好问题,我想知道为什么WordPress至少在仪表板页面上不强制重新验证。

已创建票证以解决一般管理员问题:http://core.trac.wordpress.org/ticket/21938

SO网友:Martin Zeitler

Wordpress根本不使用服务器端会话存储-仅使用Cookie(客户端会话存储)。

您没有机会访问web浏览器的历史记录。。。

禁用缓存(如上所述)听起来很有希望,但确实需要更多资源。

不会这样做,因为页面速度肯定会受到影响。

结束

相关推荐

我无法使用wp-login.php登录WordPress站点

我可以登录wordpress。com-但我无法登录到我的托管wordpress网站:http://www.hunterbaby.com.au/wp-login.php当我尝试重置密码时,它只会识别我的wordpress用户名,而不会识别与我的wordpress帐户链接的现有电子邮件?所以我无法发送重置密码链接。请帮忙!