2010-04-20 58 views
3

我很好奇在PHP代碼嵌入的HTML網頁(可能存在於服務器上的網頁爲「webpage.php」)或PHP腳本中的PHP安全性可能會被HTML頁面引用(也就是說,PHP腳本實際上並不是服務器上存在的網頁的一部分,如「something.php」,並被「webpage.html」引用)。說到這裏,讓我們說如果我的PHP腳本的源代碼被任何人知道,那將是一個非常大的問題。我知道,當您在瀏覽器中查看PHP頁面的源代碼時,PHP腳本未顯示,但如果PHP服務器失敗並且HTML仍然加載(甚至可能),那麼用戶能夠看到PHP腳本? 更爲一般的是,用戶是否可以通過Web瀏覽器訪問PHP腳本的來源,如果有,我該如何防止它?PHP腳本的安全性嵌入式或其他

+1

就像一個不相關的音符,許多最安全的框架都是開源的,所以它肯定不是人們能夠讀取源代碼的安全漏洞,除非你正在做類似「if($ _POST ['password'] =='secret12345'){...}」 – 2010-04-20 23:04:12

+1

@byronh:所以它是好吧,如果我讀你的config.php? – Tower 2010-04-21 08:32:00

回答

4

如果PHP服務器失敗並且HTML仍然加載(甚至有可能),那麼用戶能夠看到PHP腳本?

安全漏洞之外,當有人與服務器搞亂或遷移跨服務器和PHP文件,該網站已被傾倒進,這不是建立執行PHP文件夾這通常發生。這是您爲PHP部署付出的代價,就像將文件放入文件夾一樣簡單。

雖然它從來沒有理想的泄漏PHP源,你可以把所有的敏感部署的信息(如數據庫密碼)在PHP減輕的情況包括文件的web界面的根目錄(映射到/ URL的文件夾外,通常稱爲htdocs)。要搞砸配置來泄漏這種情況要困難得多。

(對於更大,更模塊化的項目,你通常會反正做散裝包括您處理的工作。)

+0

我是PHP新手,然後如何從我的網頁代碼中訪問這些腳本? – 2010-04-20 22:57:57

+0

這與我的建議基本相同。您只需在「include_once」上使用「include」,並給出文件的相對或絕對路徑。 – 2010-04-21 02:04:46

+0

@bobince,感謝您的回覆,我會確保我的重要腳本不在htdocs文件夾中。在其他閱讀中,我也發現很多人都在加密他們的PHP,你能推薦任何工具和策略來正確地做這件事嗎? – ubiquibacon 2010-04-21 03:35:49

2

你可以做,以防範簡單的服務器錯誤配置一個簡單的事情就是HTML文件包括PHP文件,該文件是文檔根目錄(域外的或文檔根以上級別的,通常是「 htdocs目錄「)。這樣,如果出現簡短的配置錯誤,所有用戶都將獲得包含文件的路徑,但他們無法直接在瀏覽器中加載包含的文件。