在我的網站中,有一些PHP 文件,我包含在其他php 文件中...它們執行不同的任務,例如連接到我的資料庫和各種其他功能...現在我知道文件的給定路徑. ..所以我可以給出路徑喜歡
http://www.mysite.com/myfiles/
這將給出該目錄中文件的目錄列表。
我知道要避免目錄列表,我將輸入文件名index.html
,或者index.php
這樣做而不是目錄列表
但我仍然知道檔案的路徑..http://www.mysite.com/myfiles/con.php
透過這樣做,程式碼被執行,但你可以看到來源OFFCourse,因為它是客戶端..
但是,當有人知道路徑時,有沒有辦法取得 PHP 檔案及其原始程式碼…這會帶來安全風險,不是嗎?
答案1
好吧,首先,您應該能夠透過將以下行新增至 include 目錄中的 .htaccess 檔案來停用目錄清單(從而不必用無用的 index.php 檔案污染您的目錄樹):
Options -Indexes
現在,關於用戶能夠獲取 php 原始程式碼,只要您的網頁伺服器設定正確以解釋 php 檔案而不僅僅是直接提供它們,您應該沒問題(假設您的包含檔案沒有echo()
任何變數)或類似的愚蠢的事情) 。
答案2
如果您為 PHP 檔案定義了 AddType 或 SetHandler,那麼在向客戶端提供服務之前,它將由 apache/webserver 進行解釋。因此客戶端不會看到 php 原始碼,而只能看到產生的 html。
答案3
如果我理解正確的話,您希望為了解 PHP 檔案實際 URL 的人獲取 PHP 原始程式碼。您可能會使用類似的東西,但請記住:這不是真正的安全性,因此最好不要將其包含在包含資料庫使用者/密碼等私有內容的 PHP 檔案中。
<?php
if($_GET['hash'] === "jV1V-7-VhS09K-_77GtEoOd86K2-ba-W") {
show_source(__FILE__);
}
?>
這樣,只有知道「哈希」的人(以及邪惡的人對你進行暴力破解)才能透過以下方式取得原始碼:http://example.org/myfiles/con.php?hash=jV1V-7-VhS09K-_77GtEoOd86K2-ba-W。