2
我正在一個網站上,我允許用戶上傳圖像到服務器。爲了使file_put_contents()
獲得正確的權限,我必須將服務器上的用戶更改爲www-data
(Apache服務器的當前用戶)。正確的目錄執行權限file_put_contents()
我只是想知道這可能會產生什麼樣的安全問題,任何有更多經驗的人都可以給出更深入的解釋或更安全的替代方案?
我正在一個網站上,我允許用戶上傳圖像到服務器。爲了使file_put_contents()
獲得正確的權限,我必須將服務器上的用戶更改爲www-data
(Apache服務器的當前用戶)。正確的目錄執行權限file_put_contents()
我只是想知道這可能會產生什麼樣的安全問題,任何有更多經驗的人都可以給出更深入的解釋或更安全的替代方案?
上傳到www上面的不同目錄。如果攻擊者可以上傳任何可執行的文件,而不能執行該文件......如果執行它們可以執行任何操作。
將上傳的文件名更改爲其他名稱。不要將文件保存爲用戶提供的名稱。
將文件權限更改爲只讀。
檢查文件的MIME與$ _FILES [ 'DFJK'] [ '型']類型不是......用它來檢查MIME類型
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($finfo, $_FILES['soup']['tmp_name']);
因爲
$_FILES['filename']['type']
可以由用戶改變。
也檢查文件大小,因爲它們會上傳非常大的尺寸。然後你的服務器開始拒絕服務模式。
也可以使用htaccess
停止目錄的可執行權限。
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
也
php_flag engine off