2015-05-21 88 views
0

因此,我製作了一些基本的PHP軟件並有一個配置文件。該文件包含數據庫的信息而已,沒有用戶密碼等等等等。但是,我宣佈變量只爲正常($測試=「測試」),並想知道如果有人能使用需要/包括獲得變量?我認爲他們將無法通過file_get_contents()訪問變量;由於PHP的工作方式。但我不確定是否需要/包含。顯然你可以在本地做,但從其他網站怎麼樣?另一個站點可以在外部使用我的PHP腳本嗎?

實例來澄清一些事情:

http://example.com/config.php

  • $ DB_HOST
  • $ DB_USER
  • $ DB_PASS
  • $ db_base

現在用http://anotherexample.com/somepage.php才肯Ÿ能夠使用require/include從example.com獲取PHP腳本,然後回顯變量?

謝謝!

+1

不,不,除非你的服務器配置錯誤。你的服務器會執行這個腳本,外部人員得到的唯一東西就是腳本的OUTPUT。例如去網頁上任何一個php頁面,做一個查看源代碼 - 你不會看到php源代碼,你只會看到php生成的html。 –

+0

啊,謝謝。我知道PHP是由服務器,而不是客戶端跑了,但我不是最先進的人在PHP和想檢查我沒有任何安全漏洞:P當然 – nfell2009

+1

,這並不是說你的服務器couldn」 t泄漏來源。例如你搞砸了.conf文件設置並關閉php,現在你的服務器會發出原始的.php源文件,因爲它不知道如何執行它。一般來說,您可能應該將諸如db連接變量之類的敏感內容放入文件根目錄之外的文件中。即使PHP以某種方式死亡,這些文件也無法通過http訪問。 –

回答

1

如果文件是一個PHP文件,並且配置PHP代碼,你的服務器是安裝通過PHP處理器正常運行.php文件......那麼,只有在同一服務器內的人可能需要或包括文件。有一些基本的PHP基本目錄的配置等,而一些「安全模式」功能,將禁止用戶在共享服務器上,從能夠做到這一點 - 只要它的設置正確。

除了未配置爲共享服務器,以防止您的目錄受到同一服務器上的其他用戶的影響...文件可能受到攻擊的唯一方式是,如果Apache停止識別文件擴展名並將其提供給Web瀏覽器爲純文本等等,這也是一個配置問題。

+0

由於服務器的潛在危險停止處理腳本文件,而是把他們的源代碼(從而揭示出存儲的祕密信息)時,人們開始把東西,永遠也不會通過HTTP服務的「DOCUMENT_ROOT」目錄之外。 – Sven

+0

非常感謝!非常有益的:) – nfell2009

相關問題