黑客能夠從服務器上下載index.php文件的機會是什麼(不是結果,而是index.php文件的內容)?你是否建議將index.php的內容放到modules/index_content.php,其中modules文件夾是.htaccess保護AND index.php包含唯一字符串<?php require_once('modules/index_content.php') ?>
?是否有意義?index.php並保護其內容
回答
源代碼披露可能發生在配置良好的服務器上,並不像您想象的那麼難得。正如其他人所說,如果你的服務器配置是健全的,那麼直接請求PHP文件的人就不會有問題。
但是你仍然有可能受到:
腳本源通過備份殘疾人專用
許多編輯留下常見的文件擴展名的備份文件,如~
或.bak
。您的服務器可能無法通過PHP解釋器運行這些服務器,因爲它們通常是通過文件擴展名配置的。留下這些備份文件,你可以公開你的來源。
本地文件包含
還可以有一個問題,如果您有使用用戶輸入讀取其他文件的web應用程序。如果腳本沒有正確驗證用戶輸入,它可能容易受到LFI的影響。這些腳本只能讀取列入白名單的文件,或者至少應限制在某個目錄中。如果「../」被接受,那麼你有一個目錄遍歷漏洞,這將加劇上述兩個漏洞會更加嚴重。
添加到這一點,許多服務器已經啓用
目錄瀏覽
這是當你的服務器將列出目錄中的文件,如果一個默認文件不存在(index.html,index.php,default.htm等)。這不會公開任何來源,但允許服務器上的許多文件(服務器端處理或不處理)將被枚舉給惡意用戶,使其成爲可能非常容易集中進一步的攻擊。經由備用服務器
來源公開
另一個意外情形可以是當指出兩個web服務器(可能是間接地)在相同的文檔根。如果其中一個Web服務器未配置爲處理PHP,則可以披露該源。當一個Web服務器被配置爲反向代理某個URL模式的鏈式應用程序服務器(通常通過目錄)時,我曾多次意外地看到過這種情況。例如讓Tomcat處理/ forum下的所有內容。
SQL注入
幾乎每一個嚴肅的DBMS具有的功能,允許其在系統上讀取文件。如果您不保護數據庫輸入(請僅使用參數化查詢),則可能會通過此機制泄露源代碼。請注意,在這種情況下,源代碼泄露是您最後關心的問題。
我確定有很多其他人,但這些是我看到這種披露的最常見方式。請記住,安全是一個過程,範圍廣泛。通常是作爲導致問題的獨立實體處理的關注點,系統或應用程序的交互。
+1實際提及真正的攻擊考慮。雖然應該注意的是,在一個現代的Linux發行版中,您將無法使用DMBS的文件io功能訪問web根目錄。 AppArmor或SELinux會阻止你。它應該在沒有問題的默認窗口框上工作。 – rook
如果* .php文件被Apache視爲PHP文件(即正常呈現),則不能訪問源,至少不能通過其他腳本或方式訪問服務器(在這種情況下,將腳本添加到modules/index_content.php將不會產生影響)。
它沒有任何意義。
如果有人有權訪問index.php
源文件,他還可以訪問所有包含文件的源文件。
沒有辦法通過http下載.php文件,假設您的服務器配置不會改變(例如PHP文件的處理程序被刪除)。如果發生這種情況,那麼有可能.php文件可以作爲純文本文件下載。
您應該將所有核心文件放在公共目錄(public_html,htdocs等)之外並使用它們的路徑調用它們。
+1將您的核心代碼保留在文檔根目錄之外。這可以真正限制其他漏洞的影響。 – Cheekysoft
如果您有目錄遍歷漏洞,則可能會發生這種情況。 – rook
如果您已經在您的網絡服務器上設置了PHP,他們無法下載php文件。
注意:使用htaccess保護文件夾模塊,並在index.php文件中包含一個文件,當有人訪問index.php時,他們必須提供密碼和用戶名才能訪問包含的文件。
有可能爲空。兩大例外,但:
- 「迷失」機(通過SSH,FTP等,...)
- 人類的錯誤:如果你有一個腳本讀取文件,以確保它無法使用閱讀你的PHP文件。
- 1. 保護內容
- 2. AES內容保護
- 3. 保護網頁內容
- 4. Angular2如何保護內容
- 5. 保護內容文件
- 6. 用Javascript保護內容
- 7. 如何保護ajax內容
- 8. 以XX保護內容?
- 9. Kentico - 密碼保護內容
- 10. 保護的內容在PHP
- 11. Tomcat保護靜態內容
- 12. Symfony2 - 保護所有內容
- 13. index.php?s =不會加載其他內容
- 14. iframe可以保護其外部JavaScript的內容嗎?
- 15. 如何保護我的內容從其他領域
- 16. 如何使用.htaccess保護index.php
- 17. 保護空氣應用程序內容
- 18. 保護爬蟲網站內容
- 19. 保護要複製的USB的內容
- 20. Android - 加密/保護SD卡內容
- 21. 保護從Android下載的內容
- 22. 。 「受保護的內容」複選框
- 23. 保護我的博客內容
- 24. 保護Apache提供的靜態內容
- 25. 保護HTTP請求的部分內容?
- 26. 如何保護應用購買內容?
- 27. 禁用file_get_contents以保護html內容
- 28. 如何保護AIR中的內容?
- 29. 什麼是AVAsset的保護內容
- 30. iPad - 如何在UItextview中保護內容?
除非你的PHP安裝搞砸了,他們不能下載代碼(假設他們沒有ssh,ftp等訪問權限)。我安裝了一次php + apache,並忘記重新啓動apache,結果人們能夠看到我的* .php文件的源代碼。 – Vamsi