我有我的網站根目錄以外的SSI目錄(無功/網絡/共享/ SSI)php.ini中的include_path和SSI
我想在服務器上的所有虛擬目前存在的主機能夠訪問這個文件目錄,所以我在php.ini中添加了include_path的路徑
現在我可以簡單地執行以下操作來在此目錄中加載ssi文件。
<?php include 'header.htm'; ?>
我的問題是 - 這是一個好的做法嗎?我應該知道這樣做的任何安全隱患嗎?
由於
我有我的網站根目錄以外的SSI目錄(無功/網絡/共享/ SSI)php.ini中的include_path和SSI
我想在服務器上的所有虛擬目前存在的主機能夠訪問這個文件目錄,所以我在php.ini中添加了include_path的路徑
現在我可以簡單地執行以下操作來在此目錄中加載ssi文件。
<?php include 'header.htm'; ?>
我的問題是 - 這是一個好的做法嗎?我應該知道這樣做的任何安全隱患嗎?
由於
命令
<?php include 'header.htm'; ?>
將執行內部header.htm
任何PHP代碼。如果你不能完全信任它的內容,這不是一個好主意。在這種情況下,做
<?php readfile("header.htm"); ?>
這將讀取該文件,不在它執行任何PHP代碼,並輸出。
好的,感謝您的反饋,這是我的解決方案。 我爲腳本臨時設置了包含路徑: set_include_path(get_include_path()。PATH_SEPARATOR。'/ var/www/shared/ssi /'); 然後使用: <?php readfile(「header.htm」,「true」); ?> 非常感謝 – rix
是否有你不想在包含語句中指定目錄的原因?像'<?php include('/ var/www/shared/ssi/header.html'); ?>'? – jsalonen
這是一個共享服務器,還是您唯一的託管網站?如果它是一個共享服務器,那麼任何人都可能用惡意的東西替換你的header.htm。當然,無論如何他們可能會這樣做,但現在你已經提供了一個地方來毀壞你的所有網站。 –
是的,我不想硬編碼它,因爲我有許多虛擬主機需要訪問ssi,它可以節省多次改變完整路徑,如果它改變。 – rix