關於 WordPress 的登入機制,至今對我來說還是很在意的一個部份。也就是當操作者在一台電腦登入 WP 的後台之後呢,若是沒有給他用力的按下登出的話,這本次的登入保固期就會長達一年,更慘的是此台電腦每開啟一次 BLOG 網頁就會在更新登入保固期一年,天阿。
如果你都是在個人專用的電腦下登入,哪這個問題您可以不用在看下去了。但是只要你有機會在公用電腦中登入您的寶貝 WP BLOG 那可就要注意了。只要你沒有做登出的動作,然後下一個使用者正好開啟了你的 BLOG,那麼事情就是只能期待遇上好心人了。你可能會想哪有那麼剛好的事情,不過事情就是不怕一萬只怕萬一因為幾乎所有的 WebBrowser 軟體都會保留瀏覽網址的歷史紀錄。


我也找遍了後台所有功能,沒有發現有可以調整的設定,只好自己改程式碼了。這個問題只要寫過網站程式並且處理過餅乾 (Cookie) 的人就知道該如何解決。

修改程式 wp-includes/functions.php 內的 wp_setcookie 函數,大約是在第 1767 行的地方:

1
2
setcookie('wordpressuser_'. $cookiehash, $username, time() + 31536000, $cookiepath);
setcookie('wordpresspass_'. $cookiehash, $password, time() + 31536000, $cookiepath);
1
2
3
4
 if ( $cookiepath != $sitecookiepath ) {
setcookie('wordpressuser_'. $cookiehash, $username, time() + 31536000, $sitecookiepath);
setcookie('wordpresspass_'. $cookiehash, $password, time() + 31536000, $sitecookiepath);
}

改成如下程式碼:

1
2
setcookie('wordpressuser_'. $cookiehash, $username);
setcookie('wordpresspass_'. $cookiehash, $password);
1
2
3
4
if ( $cookiepath != $sitecookiepath ) {
setcookie('wordpressuser_'. $cookiehash, $username);
setcookie('wordpresspass_'. $cookiehash, $password);
}

程式修改後,每次開啟 WebBrowser 進入 BLOG 都要做登入的動作才可以進入後台介面。雖然會增加一些不方便,不過就安全上的考量是比較好的。