我在使用命令行編輯器在本地編輯Web服務器上的文件時遇到了問題。這個規則是否足以保護這個安全漏洞?
編輯器創建了一個備份文件,後綴爲~
字符。
因此就出現了一個名爲file.php~
此文件可以直接下載在網絡服務器的文件,因爲它不是一個PHP文件處理。
我想過這樣的指令:
<Files ~ "~$">
Order allow,deny
Deny from all
</Files>
使之與~
結束被拒絕交付每個文件。
這是一個很好的方法,我錯過了什麼嗎?
我在使用命令行編輯器在本地編輯Web服務器上的文件時遇到了問題。這個規則是否足以保護這個安全漏洞?
編輯器創建了一個備份文件,後綴爲~
字符。
因此就出現了一個名爲file.php~
此文件可以直接下載在網絡服務器的文件,因爲它不是一個PHP文件處理。
我想過這樣的指令:
<Files ~ "~$">
Order allow,deny
Deny from all
</Files>
使之與~
結束被拒絕交付每個文件。
這是一個很好的方法,我錯過了什麼嗎?
這應該充分解決它;然而,更大的問題是直接在服務器上編輯,當你應該使用源代碼控制(如svn,git),然後從源代碼控制部署時。如果其他編輯使用.bak
會怎麼樣?
我完全同意這個。但是很難控制人爲錯誤;)在這種情況下,它是一個未版本化的文件(包括數據庫訪問數據的本地配置)。證書被改變了,這是本地編輯它的原因。 –
憑證文件甚至不應該在Web根目錄中,但是我意識到許多許多php應用程序都在這樣做。 – DGM
什麼是阻止他們改變〜某些其他角色? –
更好的解決方案是告訴編輯不要創建備份文件,和/或只是在文檔根目錄之外的某處編輯文件。 –
爲什麼不只允許執行.php文件,只讀取.css/.png/.js ....等文件,而不是僅僅避免這種情況?即使你沒有這個問題,我認爲這是一件好事。 – XzKto