原文地址:文件上傳漏洞的防范?更多內容請關注:代碼安全
PHP安全編碼——書寫安全的代碼
文件上傳漏洞的防范
提問
? ? 問題1:上傳漏洞是怎么產生的?
? ? 問題2:是否可以只用js判斷文件類型而php不判斷?
? ? 問題3:為什么必須用move_uploaded_file?
課程單元
? ? 一個簡單的文件上傳例子
? ? 文件上傳漏洞是怎么產生的
? ? 如何避免文件上傳漏洞
1. 一個簡單的文件上傳例子
? ? 這是一個簡單的上傳文件的html代碼。
? ? 這是一個簡單的上傳文件的php代碼。
2. 文件上傳漏洞是怎么產生的
? ? 上面的文件上傳的例子,沒有對被上傳的文件進行任何判斷,這樣用戶可以上傳一個.php文件,然后通過瀏覽器訪問該php文件,來達到攻擊的目的。
3. 如何避免文件上傳漏洞
? ? 1、js判斷允許上傳的文件類型
? ? 2、php判斷允許上傳的文件類型
? ? 3、使用move_uploaded_file
? ? 4、web服務器增加配置
3.1.JS判斷上傳的文件類型
? ? 在客戶端提交文件上傳之前,判斷只允許上傳指定類型的文件。
3.2. php判斷上傳的文件類型
? ? 在文件上傳后,判斷上傳的文件類型,如果類型不對,則不執行上傳操作。
3.3. 使用move_uploaded_file
? ? bool move_uploaded_file ( string $filename , string $destination )
? ? 本函數檢查并確保由 filename 指定的文件是合法的上傳文件(即通過 PHP 的 HTTP POST 上傳機制所上傳的)。如果文件合法,則將其移動為由 destination 指定的文件。
? ? 在執行文件上傳操作時,都必須用這個函數來移動上傳的臨時文件到正式目錄下,而不能自己使用move方法來移動。
3.4. web服務器增加配置
? ? 可以在web服務器中,配置保存上載的目錄不能執行php文件,這樣萬一js或者php判斷都不嚴謹,也不會出現問題。
? ? apache服務器配置不能執行php文件: