doc_root 已經限制了 apache/php 程式碼資料夾的位置。
open_basedir 更適合用於限制程式碼存取「不包含」程式碼的資料夾
可以是 doc_root 的子資料夾,如 php 文件範例 doc_root/tmp,但最好放在單獨的資料夾樹中,例如 ~user/open_basedir_root/。如果 doc_root(或 include_path)和 open_basedir 重疊,有害的程式碼可能會修改其他程式碼。
如果 apache/php 無法瀏覽 open_basedir 中的程式碼,即使惡意程式碼上傳了更多惡意程式碼到那裡,它們也將無法被瀏覽(執行)。
還應該注意的是,許多 shell 執行函式實際上是一種繞過 open_basedir 限制的方法,如果安全性需要嚴格的資料夾存取控制,則應停用這些函式。如果有害的程式碼被允許透過這些函式執行原生作業系統 shell 命令,它們就可以執行 unix/windows 版本的「delete */*/*/*」。作業系統 Shell 命令同樣可以透過強制複製檔案到 doc_root 樹中來繞過重新導向限制和檔案上傳限制。如果可以將它們作為一組或一類函式停用,那就太好了,但如果為了安全起見,仍然可以逐一停用它們。
備註:目前存在一個錯誤,如果執行了任何 include 或 require 陳述式,則將 open_basedir 設定為 docroot/tmp 的文件設定將無法運作。目前,如果 include 的 php 檔案不在 open_basedir 樹狀目錄和 doc_root+include_path 樹狀目錄中,則 include 將會失敗。這與安全性背道而馳。
這表示任何被 include 的 php 檔案都必須位於 open_basedir 中,因此容易受到有害腳本和 php 病毒(如 Injektor)的攻擊。