簡體   English   中英

WordPress密碼保護的頁面實際上未被保護

[英]Wordpress password protected page not actually protected

我在受密碼保護的頁面上遇到問題。 我已經將可見性設置為受密碼保護,但是當我從常規瀏覽器(Chrome)以及Firefox和IE11訪問頁面(注銷)時,我仍然可以訪問頁面,但是頁面標題現在顯示PROTECTED:PAGE TITLE

在“ 使用密碼保護”法典條目中,它說WordPress將此密碼存儲在瀏覽器cookie中,因此,如果讀者多次訪問同一頁面,則不必重新輸入密碼 我試圖將頁面完全鎖定,因此用戶每次嘗試進入該頁面時都需要輸入密碼。 我發現的所有Google帖子都是針對密碼保護的帖子,我找不到任何專門用於頁面的插件,他們都說WP具有內置功能,但我似乎無法弄清楚。

我真的不知道為什么要折磨您已經通過身份驗證的用戶,但是您可以執行以下兩項操作之一:

1-設置您自己的cookie。

function o99_set_newvisitor_cookie() {
    if ( !is_admin() && !isset($_COOKIE['sitename_newvisitor'])) {
        setcookie('sitename_newvisitor', 1, time()+3600*24*100, COOKIEPATH, COOKIE_DOMAIN, false); // change time ...
    }
}
add_action( 'init', 'o99_set_newvisitor_cookie');

然后在你的主題

if (isset($_COOKIE['sitename_newvisitor'])) {
     echo 'We need password'; 
}
else {
     echo 'we do not need password'; 
}

2。 使用auth_cookie_expiration過濾器減少身份驗證會話的長度。 (以下僅是示例-根據自己的需要進行更改)

function o99_cookie_expiration( $expiration, $user_id, $remember ) {
    return $remember ? $expiration : 600;
}
add_filter( 'auth_cookie_expiration', 'o99_cookie_expiration', 99, 3 );

現在取決於您的時間設置,這將把用戶趕出去。

其他不建議使用的選項是JS覆蓋窗口或php session控制。

但是,就像前面說的,我真的不知道您為什么要這么做-我敢肯定您並沒有真正考慮到這一點。

最后一件事-您是否檢查了主題文件,以確保它們確實對所有數據進行了保護?

  if ( !post_password_required() ) {
    echo 'protected content'; //or content or title or whatever ..
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM