問題描述
我是 PHP 的新手,但是我已經注意到,每個 PHP 檔案都有一個安全性的程式碼片段,「開始時,如果沒有以正確的方式訪問」 指令碼; 我的問題,child-theme functions.php 是否需要這樣的東西,以確保安全?
PHP:
if ( ! defined( 'ABSPATH' ) ) {
die( 'Direct Access Not Permitted' );
}
最佳解決思路
是否需要它?可能不是 (除了 this edge case,道具 @bravokeyl) 。你應該加嗎?在我看來,是的
-
從編碼/架構 POV,您宣告 「這個檔案需要 WordPress」 。
-
任何直接命中您的主題檔案 (好奇的使用者,機器人,”script kiddies” 等) 有可能洩漏一點資訊 (很可能是檔案系統) 和/或丟棄您的錯誤日誌 (例如
Undefined function get_header in /bada/bing/bada/boom) -
重申 1),這只是好的做法。
不過,我絕對討厭這個:
die( 'Direct Access Not Permitted' );
IMO 應該簡單地是:
if ( ! defined( 'ABSPATH' ) )
exit;
“message” 沒有任何意義。我是 exit 的粉絲。它傳達一個事實,這是一個預期的可能的情況,在這種情況下,我只是想退出。我使用 die 進行”unexpected” 場景,如檔案系統寫入錯誤,資料庫錯誤等。
次佳解決思路
大多數時候,沒有必要在孩子主題中檢查 defined( 'ABSPATH' )。
第三種解決思路
不,functions.php 會在使用 WordPress API 時直接載入 PHP 生成 PHP 致命。
如果 functions.php 試圖引導和載入 WordPress,那麼是的,這是有必要的,但是如果你已經做了,那麼一些事情已經非常錯誤,你需要從頭開始
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。